Tag: 表示

在沙箱中的服务器上运行不受信任的JavaScript代码

我似乎无法弄清楚如何设置节点沙箱,它可以安全地运行不受信任的代码,并允许用户通过api调用 (sys进出) 与程序进行交互 。 我试图在浏览器中设置一个控制台,让用户从服务器上运行自己的代码。 有没有支持这个节点的软件包,还是我需要编写自己的节点虚拟机? 谢谢。 编辑:我希望用户能够写入readline()并让程序在断点处等待传入的数据。同样, console.log()的输出应该redirect到inputAPI调用的响应。

表示中间件被叫两次

在app.js我做的 const { authMiddleware } = require('./utils/authMiddleware') var app = express(); app.use('/api', authMiddleware, require('./routes/upload-image')) app.use('/api', require('./routes/user')) app.use('/api', authMiddleware, require('./routes/task')) app.use('/api', authMiddleware, require('./routes/credit')) 我有一个简单的console.log authMiddleware.js module.exports.authMiddleware = function(req, res, next) { //res.body.user_id = ) console.log('get logged in user then set user id to body') next() } post image端点就像这个routes / upload-image.js const express = require('express'); const router […]

护照本地的一个node.js应用程序与多个路线文件

我已经成功地遵循这个教程,并做了我的基于Node.js的应用程序。 现在我想添加护照本地支持login一些特定的路线。 我发现关于使用Passport的每个教程都只适用于只有一个path文件的应用程序。 但我有我的路线在多个文件(在app.js ): var index = require('./routes/index'); var config = require('./routes/config'); var about = require('./routes/about'); var run = require('./routes/run'); var device = require('./routes/device'); var user = require('./routes/user'); 例如在routes / config.js中 : router.get('/', server_controller.index); router.get('/server/create', server_controller.server_create_get); router.post('/server/create', server_controller.server_create_post); router.get('/server/:id/delete', server_controller.server_delete_get); router.post('/server/:id/delete', server_controller.server_delete_post); 在routes / device.js中,我们有需要login的路由: router.get('/', device_controller.index); router.get('/change-ip', device_controller.device_edit_ip_get); router.post('/change-ip', device_controller.device_edit_ip_post); 那么我应该如何在这些不同的path文件中使用护照本地中间件? 更新 :在routes […]

这是正常的bluebird / node.js / expresserror handling?

所以,我做了这个愚蠢的错字,花了我相当多的时间来find它,因为我总是从执行mongoose查询中得到一个空的错误。 我重新创build了一个更通用的行为。 var express = require('express'); var router = express.Router(); var Promise = require('Bluebird'); router.patch('/test', function (req, res, next){ var testPromise = new Promise(function (resolve, reject) { resolve(); }) .then(function(result){ if(thisIsAnExampleTypo){} res.status(200).json({ message: 'this will no be executed because of the typo', object: result }); }) .catch(function(err){ //console.log(err); return res.status(500).json({ title: 'This will execute because […]

Express.js + body-parser:POST请求中的空req.body

我正在使用Express和body-parser中间件来处理传入的请求。 在前端,我有一个表单,只是一个隐藏的input和一个提交button(写在帕格): form(notes="saveNotesForm" action=`/lessons/${lesson._id}/notes` method="POST" enctype="application/x-www-form-urlencoded") input(type="hidden" id="hiddenNotes" name="hiddenNotes" alt="Notes Copy" value="test").notesHidden input(type="submit" name="saveNotes" alt="Save Notes" value="Save") 在后端,我有Express应用程序使用body-parser: const bodyParser = require('body-parser'); // … app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); 处理传入请求的路由: router.post('/lessons/:lessonID/notes', lessonController.updateNotes); // … and in lessonController: exports.updateNotes = async (req, res) => { console.log('updateNotes request received'); console.log(req.body); res.status(200).json({ status: 'success' }); } 当我尝试在req.body中使用req.body时,body是一个空对象,但是至less应该具有值为"test" hiddenNotes属性。 […]

在node.js中如何testing传递给渲染文件的对象

router.get('/', (req, res) => { User.find({}, (err, users) => { res.render('users/index', {users: users}); }); )); 在页面上呈现的数据没有问题。 我只是想找一个方法来断言{users:users} 像下面的东西… // testfile.js const user = {name: 'nate'} beforeEach((done) => { User.remove({}).then(() => { return User.insert(user); }).then(() => done()); }); it('should GET /users page', (done) => { request(app) .get('/users/') .end((err, response) => { assert(response.body === user); done(); }) […]

我可以从服务器端而不是浏览器端的ejs页面访问cookie吗?

我需要做一个例程来检查环境下的login状态 – node.js,express,ejs。 我想我需要在服务器端的所有ejs查看页面中检查login状态,而不是在浏览器端。 要做到这一点,我认为我需要在ejs页面上编写一个代码,查找并查看一个cookie – 这个cookiecertificate用户已经正确login。 我可以从ejs页面访问浏览器cookie吗? 如果是这样,你能指导我如何从ejs页面访问cookie吗? 我可以使用ejs中的cookieparsing器模块吗? 如果没有办法从ejs页面的服务器端访问cookie,我相信我只需要在浏览器端访问cookie。 这是正常的方式来处理login?

用户身份validation错误 – Passport.js

即时通讯使用passport.js(本地策略)来validation用户,但我收到以下错误: Unhandled "error" event. (Incorrect arguments) 详细的错误消息: index.js文件: const {register: registerUser, login: loginUser} = require('../controllers/authentication'); // login router .route('/login') .post(loginUser); Authentication.js文件: // login function let login = (req,res) => { if(!req.body.email || !req.body.password){ sendJsonResponse(res, 400, {"message": "All fields required"}); return; } passport.authenticate('local', (err, user, info) => { let token; if(err){ sendJsonResponse(res, 404, err); return; } […]

是否有可能在MongoDB中“join”文档并删除“父”文档,但仍保留“子”文档?

我正在用MEAN堆栈构build一个CRUD应用程序。 我有一个patients模式,我需要给这些患者添加一个medical history ,我想知道是否可以像使用mysql中的“连接”来使用这些文档。 如果是的话,甚至在病人被删除之后,我怎么能保留medical history ? 这是我patient模式 var mongoose = require("mongoose"); var Schema = mongoose.Schema; var paciente_schema = new Schema({ nombre: {type: String, required: true}, estado: {type: String, required: true, default: "En espera"}, fecha: {type: String, required: true}, edad: {type: String, required: true}, sexo: {type: String, required: true}, direccion: {type: String, required: true}, contacto: […]

在快速路线参数连字符

有谁知道我是否可以格式化我的快速路线和参数,如: app.get('/:a-:b-:c', (req, res) => { // a, b, c are parameters }); 提前致谢!