it('test safe code', function (done) {
(async () =>{
let url = 'http://localhost:'+serverPort+'/test-js';
await Page.navigate({ url: url, referrer: 'http://test-site.ru' });
Page.loadEventFired(async() => {
let scriptJS = `document.querySelectorAll('script').length`;
let result = await Runtime.evaluate({
expression: scriptJS
});
try {
expect(result.result.value).to.equal(1, "is insert script count 2?");
} catch(e){
return done(e);
}
return done();
});
})();
});
upstream app_node {
ip_hash;
server 127.0.0.1:3000 weight=5;
# ...
}
server {
# ...
location / ( можно дополнить урл и ноде будеи обрабатыватся только с этого урла /rest/*) {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://app_node;
proxy_redirect off;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
// результат в виде массива
function findItemsByUserName($objects, username){
let items = [];
for(let key in $objects){
if ($objects[key].name === username) {
items.push(Object.assign({},$objects[key]));
}
}
return items;
}
// результат в виде объектов
function findItemsByUserName($objects, username){
let items = {};
for(let key in $objects){
if ($objects[key].name === username) {
items[key] = Object.assign({},$objects[key]);
}
}
return items;
}
const
finalhandler = require('finalhandler'), // пакет нужно будет поставить через npm
http = require('http'),
officegen = require('officegen'); // пакет нужно будет поставить через npm
Router = require('router'), // пакет нужно будет поставить через npm
// создаем сервер и биндим роутеры на все ответы
server = http.createServer(function onRequest(req, res) {
router(req, res, finalhandler(req, res));
});
// внутри метода пишем свой код с этой либы, я особо не вникал взял пример из документации
router.get('/generate-pptx', function(request,response) {
response.writeHead ( 200, {
"Content-Type": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
'Content-disposition': 'attachment; filename=surprise.pptx'
});
var pptx = officegen ( 'pptx' );
pptx.on ( 'finalize', function ( written ) {
// ...
});
pptx.on ( 'error', function ( err ) {
// ...
});
// ... (fill pptx with data)
pptx.generate ( response );
});
// слушаем запросы на 3000 порту
server.listen({port: 3000});
let direction = 'from';
let url = strtr('url.com/api/{direction}/rest', {
'{direction}' => direction
});
console.log('test url replace placeholder',url);
const
finalhandler = require('finalhandler'),
http = require('http'),
Router = require('router');
let routerOptions = {},
router = Router(routerOptions ),
server;
router.get('/chat/test',function(req,res) {
let ChatController = new( require('./lib/controller/chat'));
ChatController.actionTest().then(function(result){
res.end(result);
});
});
server = http.createServer(function onRequest(req, res) {
router(req, res, finalhandler(req, res));
});
// timeout 2 min default 120000
server.listen({port: port, timeout: 60000}, function(){
});
async.parallel([
function(callback){
console.log('mongodb callback run');
var mongodb_url = 'mongodb://localhost:27017/database';
var options = { server: { auto_reconnect:true, poolSize: 20, socketOptions: { connectTimeoutMS: 2000 } } };
MongoClient.connect(mongodb_url, options ,function(err, db) {
assert.equal(null, err);
mongodb = db;
callback(null,{event:'init_mongo', reason: 'mongodb connection success'});
});
},
// ....
],function(err,result){
app.run() //sertver listen
});