Tag: 表示

模型定义之前定义的中间件,级联删除失败,出现中间件被绕过

这是我在我的文件中。 我想要做的是当一个Author文档被删除,他所有的Book文档也应该被删除。 我最初尝试使用连接error handling程序的串行中间件,但没有错误logging, Author被删除,但他的Book没有。 然后我尝试了并行中间件,假设remove()不会被触发,直到所有的前中间件都完成了,但似乎并不是这样。 Author仍被删除,但Book没有,也没有错误logging: //… var Book = require('./book-model''); AuthorSchema.pre('remove', true, function(next, done) { Book.remove({author: this._id}, function(err) { if (err) { console.log(err); done(err); } done(); }); next(); }); AuthorSchema.statics.deleteAuthor = function(authorId, callback) { var Author = mongoose.model('Author'); Author.remove({_id: authorId}, callback); }; // … module.exports = mongoose.model('Author', AuthorSchema); 所以我在考虑中间件被绕过,否则考虑到我尝试过的变化的数量,我会看到至less有一些错误,表明中间件确实被触发。 不幸的是,我似乎无法指出我做错了什么。 请指教。

在Swig模板引擎中进行循环

我正在使用Swig作为Express.js的模板引擎,我发现没有办法使用像这样的variables进行循环: for(var i=0; i<100; i++){ //whatever } 这甚至有可能吗?

req.isAuthenticated()在服务器启动一段时间后返回false

我在节点js routes.js.中实现了以下function。在任何请求被首先服务之前,检查isAuthenticated。 function isLoggedIn(req, res, next) { if (req.isAuthenticated()) { console.log('Session Expiry '+req.session.cookie.expires); console.log('Authenticated'); return next(); } console.log('Not Authenticated'); res.redirect('/'); } 但是,当我打开页面一段时间后刷新或导航到其他页面时,它会转到索引页面,而不是当前页面。我发现这是因为req.isAuthenticated()在页面加载一段时间后计算为false。 为什么会变成错误? 是不是因为序列化不当? 这是我的序列化和deserilize方法,我是否正确地做, passport.serializeUser(function (user, done) { console.log('Serializing User'); done(null, user.id); }); // used to deserialize the user passport.deserializeUser(function (id, done) { console.log('Calling Deserlize'); dbconn.user_findById(id, function (err, user) {//call to query DB console.log('Deserializing […]

如何从Express.js发布到api

我是Node / Express和API的新手。 长话短说,我是第一次潜入后端和架构的前端人物。 我的问题细目如下: 应用程序描述:一个Web应用程序,允许用户查看医疗数据logging。 所需function:在页面加载时更改jsonlogging的状态。 当用户打开一个logging(页面)时,我想将JSON对象从UNDIAGNOSED自动更改为DIAGNOSED。 这需要在服务器端完成,以避免暴露的API端点,这需要保持隐藏的安全原因。 把它想象成一个“读/不读”电子邮件。 一旦它被打开,它将状态改变为“读” Probelem:…我是一个新手… //When the server GETs a request to this URL router.get('/content/:contentid', function(req, res, next) { // Configure the REST platform call var platform_options = { resource: '/content/' + req.params.contentid, method: 'POST', json: "diagnosis_state: DIAGNOSED" }; // Make the call var platform = ihplatform(_config, req.session, […]

bootstrappedUser – Jade或EJS到HTML

我已经在Mean stack上做了一些指导,并且我到了目前被困住的地步。 按照这个指南,我创build了一个简单的身份validation,我可以使用Passport JSlogin。 无论什么时候,当页面刷新时,authentication重新开始(客户端不再识别)。 既然这是假设发生在指南,我们即将解决这个问题,指导下面说。 1.创build一个Jade文件并插入: if !!bootstrappedUser script. window.bootstrappedUserObject = !{JSON.stringify(bootstrappedUser)} 我已经在我的HTML文件中尝试过,但它不起作用: <script type='text/javascript'> if (bootstrappedUser != "undefined" ){ window.bootstrappedUserObject = JSON.stringify(bootstrappedUser); } </script> 获取错误: Uncaught ReferenceError: bootstrappedUser is not defined即使我已经在后端js文件中创build了variables并将req.user赋值给它, Uncaught ReferenceError: bootstrappedUser is not defined 。 我想这个文件包含在我的主要布局(index.html)。 问题是我没有使用Jade作为模板引擎,而是纯HTML,而我不知道如何将这些代码转换成我的index.html中的简单HTML。 它接缝这个声明只在用户点击loginbutton时初始化。 有没有人有任何想法或解决scheme如何编写纯HTML的上述代码。 我浏览了StackOverflow并发现了几乎相似的问题,但不够相似。 在此先感谢,亚历山大

如何获取由Bootstrap File Input插件创build的图像数据

我有下面的select和显示选定的图像,改变图像,取消它的工作。 所有这些都是由Bootstrap File Input插件完成的。 <div class="fileinput fileinput-new" data-provides="fileinput"> <div class="fileinput-new thumbnail"> <img src="http://www.placehold.it/512×512/EFEFEF/AAAAAA&amp;text=NO+IMAGE" alt="" class="img-responsive" /> </div> <div class="fileinput-preview fileinput-exists thumbnail"> </div> <div> <span class="btn default btn-file"> <span class="fileinput-new">Select image </span> <span class="fileinput-exists">Change </span> <input type="file" name="…" > </span> <a href="#" class="btn red fileinput-exists" data-dismiss="fileinput">Remove </a> </div> </div> 现在这个Bootstrap文件input插件创build下面的img元素,它保存图像的数据。 我需要这些数据,所以我可以使用AngularJS发送到我的节点服务器,并将该图像保存在我的服务器上的一个文件夹。 <div class="fileinput-preview fileinput-exists thumbnail"> <img […]

为什么许多express.js(web框架)的例子附加express对象到http对象?

在这个例子中,将express对象传递给http对象有什么意义? var express = require('express'); var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); 很多例子都是这样的。 我不太清楚这是什么意思。 其他一些例子根本不使用http 。 这里是Express.js网站( http://expressjs.com/starter/hello-world.html )的例子,它不使用http对象: var express = require('express') var app = express() app.get('/', function (req, res) { res.send('Hello World!') }) var server = app.listen(3000, function () { var host = server.address().address var port = server.address().port […]

如何修改核心设置或节点js默认库中的节点js请求超时?

在节点js中,套接字超时默认情况下已经在文件中find的包本身中设置了两分钟。 我想要这个代码所在的位置,以便我可以修改它们。 我发现了以下备用解决scheme,但是我希望在核心库中进行更改。 var serverInstance = http.createServer(app).listen(port, function(){ // code } serverInstance.timeout = 0; // for disabling the timeout serverInstance.on('timeout', function(socket){ // custom code }); 对于您的参考:1.)Express.js是服务器API 2.)connect.js是会话pipe理API

如果资源回报提前,ExpressJS会执行callback链吗?

一个简单的问题,如果我有一个callback链的路线设置,例如 app.route('/myroute').post(callback1, callback2, callback3); 我在每个callback中调用next(),除了最后一个。 假设我使用我的'res'对象来渲染并在callback函数2上发送回应,但是我仍然想对callback函数3做一些处理,而不需要与客户端交互或返回任何东西。 即使callback1或callback2使用res对象返回响应,我的callback函数3是否总是被执行? 做一些testing显示,它确实调用callback3,但有些人说,如果res返回一个响应,expressjs将终止调用链。 所以我不想有任何疑问,这里的行为是否有明确的答案?

发送一个快速实例到http.createServer

我从Node.js 文档看到, http.createServer接受一个requestListener参数。 从我读到的, requestListener是一个自动添加到request事件的函数。 我想知道如何将一个express的实例传递给http.createServer如下所示: var express = require('express'); var app = express(); var server = require('http').createServer(app) app如何可以是一个requestListener? 这是一个function吗? 我想我不确定express()返回的是什么。