Articles of 表示

如何区分expressjs中的两个POST调用?

我目前有一个invent.ejs文件有两种不同的forms: 一个简单的描述: ///inven.ejs <form method="POST" value="inven"> <div id="some-form" style="display: none;"> <table> <tr> <td><label for="item">Item</label></td> <td><input type="text" name="item" required/></td> </tr> <tr> <td><label for="text-box-value">Value</label></td> </tr> <tr> <td><label for="comments">Comments</label></td> <td><textarea rows="4" cols="50" required></textarea></td> </tr> <tr> <td><input type="submit" /></td> </tr> </table> </div> </form> 另一个用于file upload: ///inven.ejs <div id="fileUp"> <form id="fileUpload" name="fileUpload" enctype="multipart/form-data" method="post"> <fieldset> <input type="file"id="fileSelect"> <input type="submit" name="upload" […]

在Ubuntu 14.节点和NVM安装破坏任何想法我应该做什么?

which node 回报 / usr / sbin目录/节点 which nvm 什么也不返回 nvm ls什么也没有返回 快递不再有效 如果我尝试curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash 它说 nvm已经安装在/home/adam/.nvm,试图更新=> HEAD现在在7a423b7 … v0.11.1错误:找不到分支'master'。 确实.nvm就在那里。 任何想法我应该做什么卸载一切,重新安装或修复我的安装?

Express布局错误 – variables未定义

我正在使用express-ejs-layouts,并在控制台日志中看到以下错误: >> 5| <title><%= title %></title> title is not defined 我确实在我的layout.ejs文件中定义了以下元素: <title><%= title %></title> 我从我的一个path文件中填充这个variables: router.get('/', function(req, res) { res.render('index', { title : 'Express' }); }); 任何想法我失踪? 谢谢!

Nodejs – 写入和保存文件

我正在调查如何将文件下载到用户的本地机器,但我不太清楚为了做到这一点,我需要什么。 我在前端使用Nodejs和Express与Angularjs。 用户可以将文本写入文本区域,这是将文本写入文件。 要做到这一点,我有: … fs = require('fs'); fs.writeFile('filename.txt', textarea.text, function (err) { if (err) return console.log(err); res.send(200); }); … 一旦文件被创build,我怎么得到它在用户的机器上下载?

如何处理内部服务器API和HTTP API之间的错误

这就是我的node.js服务器的组织方式 问题 :API通过模型(mongoose)向我的mongodb数据库发出请求。 所以在API层我可以有: User.findById(id, function(user) { if(user._id !== userid) return deferred.reject(new Error()); // ?? if(!user) return deferred.reject(new Error()); // ?? user[field] = value; user.save(function() { deferred.resolve(user); }); }); 但是,我应该抛出什么错误? 什么方法更合适,更方便用户。 我可以尝试例如: if(user._id !== userid) return deferred.reject(new Error(403)); 但是这意味着没有消息,只是错误代码:/ 另一个解决scheme exports.errors = errors = NOT_FOUND: id: "NOT_FOUND" code: 404 message: "Can't found requested object. Please […]

了解Express中的callback

我想从passport.js身份validation文档中了解以下示例: app.get('/login', function(req, res, next) { passport.authenticate('local', function(err, user, info) { if (err) { return next(err); } if (!user) { return res.redirect('/login'); } req.logIn(user, function(err) { if (err) { return next(err); } return res.redirect('/users/' + user.username); }); })(req, res, next); //***UNSURE ABOUT THIS*** }); 我明白代码的作用 – 但是我不知道callback函数结尾的(req, res, next)是什么。 为什么有必要? 它是否提供(err, user, info) ? 如果是这样的话,为什么我没有看到更多的以参数结尾的函数调用 […]

Node.js / Expressasynchronousfile upload

我已经浏览了大量的(大多数是过时的)旧的堆栈溢出和谷歌的答案,并找不到与最新版本的Node和Express一起工作的该死的东西。 什么是目前的asynchronousfile upload插件? 编辑:我正在上传文件到我的Node.js服务器。 它正在运行Express。 它应该能够处理任何文件types。

Node.js Express + Passport + Cookie会话n> 1个服务器

从护照文档: 在典型的Web应用程序中,用于authentication用户的凭证只会在login请求期间传输。 如果validation成功,会话将通过在用户浏览器中设置的cookie来build立和维护。 每个后续请求将不包含凭据,而是标识会话的唯一Cookie。 为了支持login会话,Passport将序列化和反序列化会话中的用户实例。 因此,鉴于身份validation是在客户端的浏览器中维护的,我应该能够将Web服务器扩展到大于1(每个服务器使用相同的数据库),并且Passport将用户从存储在cookie中的ID反序列化,而不pipe服务器是否看到用户之前。 如果服务器之前见过用户,但没有cookie,我希望Passportauthentication失败,但是我甚至不能用n> 1的服务器获得这么多。 1服务器进程,护照工作正常: 服务器或多或less是两个服务器上的文档的完整文档(经过大量的试验,连接参考文献等): app.configure(function() { app.use(express.static('public')); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.session({ secret: 'keyboard cat' })); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router); }); 当用户login成功时,在我返回HTTP请求之前,我logging了req.user和req.session : console.log(req.user); console.log(req.session); res.send(200, req.user); // {"cookie":{ // "originalMaxAge":null, // "expires":null, // "httpOnly":true, // "path":"/" // }, // "passport":{"user":"ID"}} 当HTTP请求返回时,Web应用程序请求/并期望服务器从传递的cookie中设置具有ID ID req.user : passport.deserializeUser(function(req, user_id, cb) { console.info('Passport deserializing user: […]

对于循环内节点请求,不按预期执行

我是新来的节点,我正在努力与这里发生的事情: app.get('/set_users/', function(req, res){ var users = [ { email: "tom@gmail.com", }, { email: "jon@gmail.com", } ]; for(i=0; i<users.length; i++){ console.log("Logging index"); console.log(i); User.findOne({email: users[i].email}, function(err, user){ console.log("Printing index"); console.log(i); if (err){ //Do something with error; } if (user) { //User already exists – do something } else{ //Add new user } } }); 我期望console.log语句的输出是: […]

无法使用Node.js和Express捕获POST参数

我正在尝试一个简单的Node.js + Express RESTful API示例,并且创build了一个简单的动作来模拟login请求。 这是我的代码: app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); // uncomment […]