Articles of 表示

节点/快速路由问题 – 调用不正确的path

一切似乎工作正常,但是当试图达到“/职位/新”我得到“TypeError:无法读取属性'标题'的空引用'/ routes / posts.js:24'在'/:标题'GET方法。 任何想法为什么? '路由/ posts.js' var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var Post = mongoose.model('posts'); /* posts displays*/ // posts index router.get('/', (req, res) => { Post.find((err, posts) => { res.render( 'posts/index', { title: 'Get All the Posts!', posts: posts } ); }); }); // single post […]

Heroku Node Express Stormpath'API密钥ID和秘密是必需的'

我一直在关注Heroku Stormpath文档来设置一个简单的快速应用程序。 我的server.js文件中的代码如下所示: 'use strict'; var express = require('express'); var pg = require('pg'); var stormpath = require('express-stormpath'); var app = express(); app.use(express.static('public')); app.use(stormpath.init(app, { apiKeyFile: '/.stormpath/apiKey.properties', apiKeyId: process.env.STORMPATH_API_KEY_ID, apiKeySecret: process.env.STORMPATH_API_KEY_SECRET, secretKey: process.env.STORMPATH_SECRET_KEY, application: process.env.STORMPATH_URL, })); app.set('port', (process.env.PORT || 5000)); app.listen(app.get('port'), function(){ console.log('Node app is running on port', app.get('port')); }); 原谅我作为Stormpath的新手。 我也浏览了Express-Stormpath文档,但在本地运行应用程序时,我仍然收到以下错误消息: Node app is running […]

续订express.js的Cookie会话

我正在使用用于Expresss.js的cookie会话模块来处理会话。 我希望会话在每次页面加载(或Ajax调用)时更新。 这就是他们通常在任何地方工作。 文件没有说一个字。 我试过这样做,但没有成功: app.use(function(req,res,next ){ req.sessionOptions.maxAge = 20*1000; return next(); });

如何在进行大量修改的同时运行我的MEAN堆栈代码,而无需重新启动`npm start`?

我用npm start运行我的MMEAN栈应用程序(Mongoose,MongoDB,Express,AngularJS和Node.js)。 但是,无论何时我在代码中进行更改,都必须退出并重新启动npm start ,以便更改显示在我的Web应用程序中。 现在越来越讨厌,因为我仍在构build我的应用程序,所以我正在做出很多改变。 那么我能做些什么来以平滑的方式运行我的MMEAN栈应用程序? 这是基于本教程的我的应用程序的目录结构: HTML views/ Angular.js public/javascript/ Express.js routes/ Node.js app.js Mongoose js models/, connected in app.js Mongo db connected in app.js

REST满服务,Post不能正确保存到数据库

REST满服务,Post不能正确保存到数据库 我有节点+快递+mongoose我的模特: var mongoose = require('mongoose'), Schema = mongoose.Schema; var bookModel = new Schema({ title: { type: String }, author: { type: String }, genre: { type: String }, read:{ type: Boolean, default:false } }); module.exports = mongoose.model('Book', bookModel); 我的App.js var express = require('express'), mongoose = require('mongoose'), bodyParser = require('body-parser'); var db = mongoose.connect('mongodb://localhost/bookApi'); var […]

使用Express中间件进行每个请求的模块configuration?

假设对我的应用程序的每个请求都包含一个MAGIC头,并且我想在某处注入该头的值,而不更新所有的请求方法。 听起来这是中间件的工作,对吧? 但是这将是线程安全的吗? 在有多个请求可能同时在运行的环境中,有没有办法使用Express中间件来执行此操作? 换句话说,我在询问示例代码中的Express中间件是设置全局共享variables还是每个请求都由独立线程处理,其中myconfig是每个请求的独立副本。 示例代码: var assert = require('assert'); var sleep = require('sleep'); var express = require('express'); var app = express(); var myconfig = {}; app.use(function(req, res, next) { myconfig.MAGIC = req.headers['MAGIC']; next(); }); app.get('/test', function(req, res) { // Pause to make it easy to have overlap. sleep(2); // If another request comes in […]

如何在nodejs中的集群之间共享可变数据?

我正在使用集群运行我的快速应用程序。 我的主人有一些需要在我的工作人员之间共享的variablescaching。 我可以这样做,因为使用物理数据存储对我来说是不可行的? if (cluster.isMaster) { // Create a worker for each CPU global.my_cache_variable = 'xyz'; console.log("Number of cpu cores", cCPUs); for (var i = 0; i < cCPUs; i++) { cluster.fork(); } cluster.on('online', function (worker) { console.log('Worker ' + worker.process.pid + ' is online.'); }); cluster.on('exit', function (worker, code, signal) { console.log('worker ' + […]

用mongoose更新对象会导致循环

在我的nodejs API应用程序中,我有这样的路线: router.post('/startuserseries', function(req, res, next){ if(!req.body.username){ return res.status(400).json({message: 'Geen username'}); } User.findOne({ 'username': req.body.username}, function(err, foundUser){ if(err) return next(err); if (foundUser) // check the value returned for undefined { foundUser.isdoingchallenges = true; foundUser.save(function (err) { if(err) { console.error('ERROR!'); } }); } }); }); 当我在邮递员叫这条路线时,请求永远不会结束。 我曾尝试使用PUT,但也没有工作,我尝试了各种结构的代码,但都没有工作。

快速删除Etag标题

我已经search了很多,但仍然找不到解决scheme,我使用nodejs默认情况下设置etag为true,我尝试了所有我在网上find的解决scheme,它仍然是设置,例如: res.set('etag', false); res.removeHeader('ETag'); app.disable('etag'); app.use(express.static(__dirname + '/public'), { etag: false }); 而且它仍然被设置,所以,我在这里失去了一些东西,因为我在节点或者expression方面并不是那么有经验。 我的问题显然是,如何禁用这个头,因为,我有一个页面有很多图像(A LOT),所有这些都是静态的, etag引起了很多阻塞,因为它发送请求来检查有效性,并防止浏览器依靠cache-control ,这是非常大的页面加载时间。 谢谢您的帮助

在Express中AngularJS作为前端时未定义会话

我用NodeJS和Express编写了webservice。 服务在端口8090上运行。我还在AngularJS上写了前端,并在端口8080上运行。 Mongo有所有用户的用户名和密码 当我通过HTML5 / AngularJS前端login时,AngularJS应用程序又调用express的http post请求。 用户通过身份validation。 我设置req.session.email =用户的电子邮件地址。 我甚至能够返回并检查在AngularJS的控制台日志req.session.email被设置正确的快递 问题是我在Express中创build了一个名为“restrict”的authentication函数,只有当req.session.email没有被定义时,它才能作为中间件函数来访问其他的get / post请求。 但是即使已经设置了会话,当这个Express的其他get / post请求被AngularJS应用调用时,这个“restrict”函数也会阻止这个调用,因为它接收到req.session.email为undefined AngularJS和Express都在同一台机器上。 但我不认为这是问题。 Express代码片段 var url = 'mongodb://127.0.0.1:5555/contacts?maxPoolSize=2'; var mongojs = require('mongojs'); var db = mongojs(url,['data']); var dbauth = mongojs(url,['users']); // var request = require('request'); var http = require('http'); var express = require('express'); var cookieparser = require('cookie-parser'); var app […]