Tag: 表示

快速路由使用callback函数时未定义的参数

目前,我在Express中使用了很多路线。 有些路线可能相当长。 常见的路线如下所示: router.get('/api/comments', function(req, res, next){ Comment.find({"user": req.payload._id}).exec(function(err,comments){ if(err){return next(err); } res.json(comments); }) } 这工作正常。 但是我多次拨打电话,可能会很长。 所以我试图创build一个可以被各种路由调用的callback函数。 例如 var testFunction = function(req, res, next){ Comment.find({"user": req.payload._id}).exec(function(err,comments){ if(err){return next(err); } res.json(comments); }) } router.get('/api/comments', testFunction(req,res,next)); 但是,我总会在最后一行得到“请求未定义”错误。 只是想知道我在做什么错在这里?

加载特定的中间衣物,而不是使用next();

我有几条这样的路线: app.post('/user/me', c.auth, c.striper.make, c.user.edit, c.user.requestDriver, render); app.post('/user/:id', c.auth, c.targetUser, c.user.makeDriver, c.user.makeAdmin, render); 当validation失败时,我想跳过所有的middlewear,并运行渲染function,与REQ,水库我不能使用next(); 因为我不知道我在哪里的顺序,有没有其他的方式来调用res, req and next();参数的特定函数res, req and next(); (我的validation没有访问这些参数,所以我不能这样做 render(res, req, next) 也许有些方法可以取代路线中的中间装备。

如何在出现特定情况时退出async.forEach循环+节点

我正在为每个循环的节点jsasynchronous工作。 当某些情况发生时,我想退出asynchronous循环。 我试着callbackcallback。 但它似乎不工作。 我如何解决这个问题? 是否有可能退出asynchronous循环。 async.forEach(usertype.permissions, function (permission, cb) { if (usertype.type === 'super_admin') { console.log('super admin') flag = 1; // here i want to exit from the loop //return cb(); } if (permission.description === 'Can this use?' && permission.default_value.indexOf('YES') > -1) { flag = 1; return cb(); } else { if (permission.description === […]

如何使用mysql连接和node.js池中的单身devise模式

我正在使用node-mysql作为orm。 ( https://github.com/mysqljs/mysql ) 我正在使用MySQL和Node.JS创build一个REST API。 之前我使用MongoDB做了同样的事情。 它工作正常。 github.com/chanakaDe/Mint-REST。 现在我想用MySQL来做同样的事情。 我做了大部分的工作,并有一个小问题。 有很多类,我需要集中使用mysql连接。 作为单身devise模式。 这是我的新回购。 https://github.com/chanakaDe/MintRestSQL 。 而且我会显示我想要使用这些模式的位置。 在这里我有数据库文件。 我创build了一个新的连接池。 github.com/chanakaDe/MintRestSQL/blob/master/app/util/database.js。 现在我想在我的控制器类中使用这个连接/池。 因为我无法在每个控制器类中创build连接。 没有? 这是我现在的两个控制器。 github.com/chanakaDe/MintRestSQL/blob/master/app/routes/report.js github.com/chanakaDe/MintRestSQL/blob/master/app/routes/api.js 请给我一个更好的方法来做到这一点。 我是node-mysql的新手。 但是在Node.JS环境中使用MySQL甚至在生产级系统中也是一个很好的方法。 所以我想用这些标准来制作一个好的API。 有没有什么办法使用单例模式或类似的东西,集中连接,并在所有的控制器中使用它? 它将花费一些时间来检查我的文件和理解代码。 但请检查并给我一个解决scheme。 我试了很多东西,但没有工作:( 欢迎您提出回购并进行更新

无法合并查询结果以创build显示最新消息的即时消息收件箱

我正在研究基于线程/对话的即时消息function(很像Facebook,环聊等)。 我试图让我的API提供经过身份validation的用户参与的对话列表,以及每个对话中最新的消息。 我已经坚持了几天,我已经尝试了很多东西。 我没有聚集运气。 如果我把我的信息作为对话的一个子文档,我可以做到这一点,但是我所读到的是避免嵌套像这样的无限数组。 我很好奇,如果我应该考虑一个模式重新devise,但首先我想看看是否有一个查询,可以让我在我需要的地方。 这是我的架构设置: Conversation.js: const mongoose = require('mongoose'), Schema = mongoose.Schema; // Schema defines how chat messages will be stored in MongoDB const ConversationSchema = new Schema({ participants: [{ type: Schema.Types.ObjectId, ref: 'User'}], }); module.exports = mongoose.model('Conversation', ConversationSchema); Message.js: const mongoose = require('mongoose'), Schema = mongoose.Schema; const MessageSchema = new Schema({ […]

如何在Node.js(express)上返回由{}而不是包围的json返回使用knex和postgresql的查询结果

如果我做一个curl请求到我的node.js(EXPRESS)API curl http://127.0.0.1:3000/api/events/user/id/1我得到这个结果: [{"id":"1","name":"casamiento 1","description":"el casamiento del tio claudio","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000805BC00000000000003E40"},{"id":"2","name":"casamiento 2","description":"el casamiento del tio claudio 2","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000405BC00000000000003D40"},{"id":"3","name":"fiesta del sandwich de miga","description":"Nos juntamos a comer sandwiches de miga hasta reventar","mode_id":1,"initial_date":"2016-05-28T22:15:58.000Z","end_date":"2016-05-28T22:15:58.000Z","state_id":1,"user_id":"1","location":"0101000020E610000000000000000000000000000000804840"}] 我需要输出被大括号包围,如: {{"id":"1","name":"casamiento 1","description":"el casamiento del tio claudio","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000805BC00000000000003E40"},{"id":"2","name":"casamiento 2","description":"el casamiento del tio claudio 2","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000405BC00000000000003D40"},{"id":"3","name":"fiesta del sandwich de miga","description":"Nos juntamos a comer sandwiches de miga hasta reventar","mode_id":1,"initial_date":"2016-05-28T22:15:58.000Z","end_date":"2016-05-28T22:15:58.000Z","state_id":1,"user_id":"1","location":"0101000020E610000000000000000000000000000000804840"}} 我的模型“事件”文件是这样的查询,然后返回结果: var express […]

parsing服务器(快速)错误:发送后无法设置标头

在NodeChef上运行的Parse Server上使用以下函数: var sendMail = function(sendMailData) { return Parse.Cloud.httpRequest({ method: 'POST', url: 'https://api.sparkpost.com/api/v1/transmissions', body: { content: { from: 'noreply@domain.com', subject: sendMailData.subject, template_id: sendMailData.templateId, }, substitution_data: sendMailData.substitution_data, recipients: sendMailData.recipients }, headers: { 'Authorization': 'AUTHKEY', 'Content-Type': 'application/json' } }); } sendMail(defaultSendMailData).then(function(okresp) { var attemptedSend = false; if (request.user.get('config')) { var userConfig = request.user.get('config') if (userConfig.copyPrescription === true) […]

在快速js分离路由器文件错误4

我是Node和Express的新手,我喜欢在单独的文件中分开路由function ,但是我总是得到错误。 我的app.js文件 – var express = require('express'); var index = require('./Routes/index'); var app = express(); app.use(index); app.listen(2000); console.log("Server working at port 2000"); 我的路线/ index.js var express = require('express'); var router = express.Router(); router.use(function(req,res,next){ console.log("url "+req.url); }); router.get('/',function(req,res){ res.send("Hi is it working?"); }); module.export = router; 当我运行它,说错误如 app.use() requires middleware functions 如果我放 `app.use('/',index);` 而不是app.use(index); 那么我得到这样的错误 […]

获取socket.io,express和node-http2通过HTTP / 2进行通信

我使用socket.io,node-http2编写了一个Web Socket服务器,并在Node.js中表示。 除了根据Chrome的DevTools socket.io的协商请求通过HTTP / 1.1(如下所示)之外,服务器按预期工作。 如果请求是使用HTTP / 2发送的,则“协议”列应显示h2 。 这只在Chrome中发生,其他浏览器使用正确的协议。 服务器代码(缩写): var PORT = 8667, config = require('./config'), socketioServer = require('socket.io'), app = express(), https = require('http2'), cors = require('cors'); app.use(cors(function(req, callback){ var corsOptions = { origin: false }; if (/^https:\/\/mlpvc-rr\.lc/.test(req.header('Origin'))) corsOptions.origin = true; callback(null, corsOptions); })); app.get('/', function (req, res) { res.sendStatus(403); }); […]

Sequelize – 从数组批量创build

我有一系列的项目,需要创build它们到数据库。 我需要检查每个插入,如果它成功插入到新的数组(结果)项目+成功=真正的JSON。 如果没有成功创build – 插入到相同的数组之前(结果)的项目+成功= false。 代码如下: create_cards: function (filter_id, is_filter, cards) { var result = []; var curr_card = null; for (var card in cards) { curr_card = this.create( { filter_id: filter_id, template: card.template, state: card.state, question_id: card.question_id || -1, answers: card.answers || -1, description: card.description || -1, correct_answer: card.correct_answer || -1 }).then(function(card) { […]