Articles of 表示

NodeJS – 发送多个请求并在一个callback中处理所有的响应

我试图find一种方法来发送多个请求(使用Express),并在一个函数中处理所有的响应。 这是我的代码: // In router.js app.get('/api/FIRST_PATH', CALLBACK_FUNCTION_A ); // In CALLBACK_FUNCTION_A file : module.exports = function (req, response) { CALLBACK_FUNCTION_TO_SERVICE_A(); CALLBACK_FUNCTION_TO_SERVICE_B(); CALLBACK_FUNCTION_TO_SERVICE_C(); } 我的问题是发送请求CALLBACK_FUNCTION_TO_SERVICE_A,CALLBACK_FUNCTION_TO_SERVICE_B和CALLBACK_FUNCTION_TO_SERVICE_C,然后检索另一个函数中的所有结果来处理它们。 任何帮助将不胜感激。

意外的标记 。 运行server.js时

我正在用MEAN堆栈编写一个Web应用程序,并且正在testing以查看我的nodejs服务器是否正在工作。 这是我的server.js: // server.js 'use strict'; // modules ================================================= const path = require('path'); const express = require('express'); const app = express(); const bodyParser = require('body-parser'); const methodOverride = require('method-override'); // configuration =========================================== // config files const db = require('./config/db'); // set our port var port = process.env.PORT || 8080; // connect to mongoDB // (uncomment […]

Sequelize,使用空白值validation字段长度

我使用快递作为ORM使用Sequelize 。 在Sequelize Model中 ,它们是接受空值的字段。 我想validation这个字段,通过定义len的input的长度,如果提供任何值。 码: field: { type: DataTypes.TEXT, allowNull: true, validate: { len: { args: [50, 200], msg: 'Please provide field within 50 to 200 characters.' } } } 但是,当字段为空时,Sequelize会抛出错误。 那么,我如何允许空值,只有在提供值时才进行validation。

React App和后端API最佳实践

我有反应路由器的客户端路由React应用程序和快速后端rest API(React应用程序正在使用API​​来获取数据) 目前我configuration为“/”的Expresspath转到包装React JavaScript文件的HTML文件,并在路由到后端API 我有反应路由器为客户端路由,使路由变得复杂。 我想知道是否将我的应用程序分为两个更好:React App和后端API,并运行两个节点实例 什么是最佳实践?

如何在hogan-express模板引擎中传递数组

如何使用hogan-express将下面的数组传递给HTML页面? 我正在尝试,但似乎并没有工作。 我的代码: apiRouter.get('/myPosts', function(req, res, next){ userModel.findOne({'profileID':req.session.facebookProfileId}, function(err, userPosts) { if(userPosts) { res.render('myPosts', {title:siteName + ': My Posts', posts:userPosts.posts}); } else { console.log('You do not have any posts'); } }) }) 顺便说一下, userPosts.posts如下所示: ["123","124","125"] myPosts.html页面如下: <!doctype html> <head> <meta charset="UTF-8"> <title>{{title}}</title> </head> <body> <p><a href="/posts?id={{posts[0].value}}">Post 1</a></p> <p><a href="/posts?id={{posts[1].value}}">Post 2</a></p> </body> </html> 顺便说一下,{{title}}位正在通过。

使用webpack dev服务器的目的是什么?

我试图理解为什么人们会喜欢webpack服务器的应用程序,其中webpack捆绑并提供客户端代码,并表示为api。 例如。 我想你可能会表示运行在一个不同的端口上运行的端口和webpack,你可以将所有的请求代理到后端express backend。 不过,我仍然看到这个用法: const app = express(); const compiler = webpack(config); app.use(express.static(__dirname + '/dist')); app.use(webpackMiddleware(compiler); app.use(webpackHotMiddleware(compiler)); // And this line 明确使用这个服务器的原因是什么?

访问路由端点之外的req属性

var express = require('express'); var router = module.exports = express.Router(); var server = require("http").Server(express); var io = require("socket.io")(server); server.listen(5000); //how to get my user.id here? router.get('/', function(req, res) { io.on('connection', function(client) { client.on('order_'+req.user.id, function(data) { io.emit('order_'+req.user.id,data); }); }); }); 上面的代码运行良好,但它有一个问题。 如果用户刷新页面/或重新进入页面,连接会相乘。 我应该把router.get('/'..以外,但我必须使用req.user.id 任何想法我怎么能得到user.id?

Express与asynchronous的Node.js API:遇到多个请求时出错

我是node.js的新手,尝试创build一个小的API。 我正在使用Express进行路由,并使用async.jc来逐步处理呼叫。 当只有一个请求进来时,这工作正常,但是当我尝试从我的机​​器发起2个或更多请求时,这个进程正在混合variables和崩溃中的值。 这里是我的来源简短的片段: router.get('/new', function (request, res) { async.waterfall([ function(callback) { // get a unique domain client.spop('domainSet', function(err, domain) { userdata = { email: 'user' + '@' + domain + '.' + mydomain, password: randomstring.generate(10), username: domain, name: domain, confirm: "false" } if (err) return next(err); callback(null, userdata, userdata.password); }) }, function(userdata, userpwd, callback) […]

节点 – expression太多的redirect

我有我的路线设置如下 当我导航到' http:// localhost / '时,我得到一个错误,说'本地主机redirect你太多次了',并且该页面的URL(显示在浏览器的URL栏中)是http:// localhost /!/仪表板 – 所以它看起来像它正在redirect,但我不明白为什么它陷入了一个无限循环 // Public Routes app.use('/', function(req,res){ res.redirect('/!/dashboard'); }); app.use('/login', routes.login); app.use('/!/dashboard', isLoggedIn, routes.dashboard); // Check If Logged In function isLoggedIn(req,res,next){ if (req.isAuthenticated()){ return next(); } else { res.redirect('/login'); } };

是否有可能使用PassportJS没有本地数据库?

我有一个应用程序使用与护照捆绑在一起的所有oAuth身份validation,但我正在使用外部服务来创build数据库/用户。 如果我做这样的事情: passport.use('local-signup', new LocalStrategy({ usernameField : 'email', passwordField : 'password', passReqToCallback : true }, function(req, username, password, done) { request.post('http://myapiservice.com/createuser').then(function(err, response, body){ return done(err, body.user); }) })) 我将如何使用这个远程存储的用户? 我没有以任何方式连接到数据库,除了一个POST API调用创build用户和一个GET调用来检索用户,所以我不知道req.user将如何performance/得到更新。 无法find一个单一的指南或其他地方的问题,所以会喜欢一点指导!