M-x revert-buffer
C-t
: swich frame
M-x set-frame-name
: set frame name
M-x term
: create a new term
C-c C-j
: switch to line mode
C-c C-k
: switch to char mode
var n = 0; | |
var myCursor = db.warehouseproducts.find(); | |
while (myCursor.hasNext()) { | |
var doc = myCursor.next(); | |
var locationMap = {}; | |
for (var i = 0 ; i < doc.locations.length; i++) | |
if (locationMap[doc.locations[i].location.str] !== undefined) { | |
printjson(doc._id); | |
n++; | |
break; |
GET /segment/{appid}/{segmentid}/listUser/{page}/{field1}/{field2} | |
{appid} : id của ứng dụng | |
{segmentid}: segment id | |
{page}: dùng trong phân trang, {page} quy định số thứ tự của trang ( mỗi trang có cố định 100 phần tử) | |
{field1}: code của filter1 ví dụ: _os, age, _revenue | |
{field2}: [có thể bỏ trổng] code của filter2 | |
kết quả trả ra là mảng bản ghi user dưới dạng json |
var loadjQuery = function(cb){ | |
if(typeof(jQuery) == 'undefined'){ | |
var scr = document.createElement('script'); | |
scr.setAttribute('type', 'text/javascript'); | |
scr.setAttribute('src', 'https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js'); | |
if(scr.readyState){ | |
scr.onreadystatechange = function(){ | |
if(scr.readyState === 'complete' || scr.readyState === 'loaded'){ | |
scr.onreadystatechange = null; |
function addJquery(cb) { | |
if (typeof(jQuery) !== 'undefined') return; | |
var url = 'https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js'; | |
var scr = document.createElement('script'); scr.setAttribute('type', 'text/javascript'); scr.setAttribute('src', url); | |
var head = document.getElementsByTagName('head')[0]; head.insertBefore(scr, head.firstChild); | |
} | |
addJquery(); |
Set up nginx proxy to nodejs websocket
Tài liệu này trình bày hai cách cấu hình, https ở nginx -> wss nodejs
hoặc từ https ở nginx -> ws
ở nodejs
Để điều hướng request từ cổng 443 vào websocket server (demo bằng nodejs)
wss://domain.com/ws
sẽ được chuyển về wss://127.0.0.1:2910