Questions tagged «express»

Express是一个灵活的Node.js Web应用程序框架,为构建Web应用程序提供了一组强大的功能。

16
nodemon不起作用:-bash:nodemon:找不到命令
我在运行El Capitan的Mac上。我有节点v5.6.0和npm v3.6.0。当我尝试运行nodemon时,我得到: -bash: nodemon: command not found 我认为这可能意味着我没有安装nodemon,所以当我尝试使用...安装它时... sudo npm install -g nodemon ...我得到这个: npm ERR! Darwin 15.2.0 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "nodemon" npm ERR! node v5.6.0 npm ERR! npm v3.6.0 npm ERR! path /usr/local/bin/nodemon npm ERR! code EEXIST npm ERR! Refusing to delete /usr/local/bin/nodemon: ../lib/node_modules/nodemon/nodemon.js …
72 node.js  bash  express  npm  nodemon 

3
在ExpressJS中为特定路由链接多个中间件
我只想验证一下内容,但无法在Express文档或在线文档中找到与此相关的内容(尽管我知道这是一个功能)。 我可以对其进行测试,但我实际上并没有一个很好的模板,希望听到社区的意见。 如果我这样定义快递路线: app.get('/', function (req, res) { res.send('GET request to homepage'); }); 我还可以定义一个中间件并直接加载它,例如 middleware = function(req, res){ res.send('GET request to homepage'); }); app.get('/', middleware) 但是,我也可以链接这些路由中的至少一个来运行额外的中间件,例如身份验证,如下所示: app.get('/', middleware, function (req, res) { res.send('GET request to homepage'); }); 这些是无限连锁的吗?如果愿意,可以在给定的路由上添加10个中间件功能吗?我想查看app.get可以接受的参数,但是就像提到的那样,我在文档中找不到它。

7
配置节点快递服务静态bower_components?
我有一个目录结构 projectName | - bower_components/ | - public/ | - css | - js | - index.html | - Gruntfile.js | - package.json | - bower.json | - app.js 我想启动我的应用程序并index.html与节点一起使用。所以app.js我有: var express = require('express'); var port = process.env.PORT || 3000; var app = express(); app.configure(function(){ // Serve up content from …

8
对于单主机Node.js生产应用程序,好的会话存储是什么?
我正在使用带有连接中间件的Node's Express。Connect的内存会话存储不适合生产: Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and obviously only work within a single process. 对于较大的部署,mongo或redis是有意义的。 但是,生产中的单主机应用程序有什么好的解决方案?

3
nodejs护照认证令牌
我正在编写一个想同时用作Web应用程序和API提供程序的Node.js应用程序。验证用户身份后,我想为该用户分配一个令牌,以用于后续请求。这对于Web应用程序的通行证非常有用,因为我只是在会话中使用令牌对用户进行序列化和反序列化。但是,在响应API请求时,没有用于设置存储会话信息的cookie。理想情况下,护照将在会话和请求正文中都寻找令牌。有什么方法可以配置护照来完成此任务吗?

5
MongoDB无法正常工作。“错误:dbpath(/ data / db)不存在。”
当我尝试在终端中运行“ mongod”时,出现以下错误。我尝试卸载,重新安装和重新启动计算机。关于如何使其工作的任何建议都将是惊人的。 错误: dbpath (/data/db) does not exist. Create this directory or give existing directory in --dbpath. See http://dochub.mongodb.org/core/startingandstoppingmongo 旁注:在出现此错误的同时,Node也停止了在我的计算机上工作。 events.js:72 throw er; // Unhandled 'error' event ^ Error: failed to connect to [localhost:27017] 任何帮助将非常感激!

4
使用Node / Express构建企业应用
我试图了解如何使用Node / Express / Mongo(实际上使用MEAN堆栈)来构造企业应用。 在阅读了2本书和一些谷歌搜索(包括类似的StackOverflow问题)之后,我找不到使用Express构建大型应用程序的任何好例子。我读过的所有资料都建议按以下实体拆分应用程序: 路线 控制器 楷模 但我这个结构看主要问题是,控制器是神一样的物体,他们知道req,res对象,负责验证和有业务逻辑包含英寸 另一方面,路由在我看来就像过度设计,因为它们所做的只是将端点(路径)映射到控制器方法。 我有Scala / Java背景,因此我习惯于将所有逻辑分为3层-控制器/服务/ dao。 对我来说,以下陈述是理想的: 控制器仅负责与WEB部件进行交互,即编组/解组,一些简单的验证(必需,最小,最大,电子邮件正则表达式等); 服务层(实际上我在NodeJS / Express应用程序中错过了)仅负责业务逻辑和某些业务验证。服务层对WEB部分一无所知(即可以从其他应用程序位置调用它们,而不仅仅是从Web上下文中调用); 关于DAO层对我来说很清楚。猫鼬模型实际上是DAO,因此在这里对我来说最清楚。 我认为我看到的示例非常简单,并且仅显示Node / Express的概念,但是我想看看一些涉及许多业务逻辑/验证的真实示例。 编辑: 我还不清楚另一件事,就是缺少DTO对象。考虑以下示例: const mongoose = require('mongoose'); const Article = mongoose.model('Article'); exports.create = function(req, res) { // Create a new article object const article = new Article(req.body); …

6
Express.js响应超时
问题 我一直在寻找Express.js的请求/响应超时,但是一切似乎都与连接有关,而不是请求/响应本身。 如果请求花费很长时间,则应该超时。显然,这不应该发生,但即使是一个简单的错误,如具有不调用回调或不调用的路由处理程序res.send(),浏览器将永远等待答复。 空路由处理程序就是一个很好的例子。 app.get('/sessions/', function(req, res, callback){}); 固定 我之前 添加了以下内容,app.use(app,router);并且似乎添加了超时功能。有人对此有任何经验/意见吗? app.use(function(req, res, next){ res.setTimeout(120000, function(){ console.log('Request has timed out.'); res.send(408); }); next(); }); 请注意,我已将超时设置为2分钟。

5
在客户端JavaScript中访问Express.js局部变量
我想知道我是否做对了,如果不正确,你们会怎么做。 我有一个Jade模板,该模板需要呈现从MongoDB数据库检索到的一些数据,并且还需要访问客户端JavaScript文件中的该数据。 我正在使用Express.js并将数据发送到Jade模板,如下所示: var myMongoDbObject = {name : 'stephen'}; res.render('home', { locals: { data : myMongoDbObject } }); 然后在home.jade内部,我可以做类似的事情: p Hello #{data.name}! 写出来: Hello stephen! 现在,我想要的是也可以访问客户端JS文件中的此数据对象,以便在将其回发到服务器以更新数据库之前,只需单击一下按钮即可操作该对象。 通过将“数据”对象保存在Jade模板的隐藏输入字段中,然后在客户端JS文件中获取该字段的值,我已经能够实现这一点。 内部home.jade - local_data = JSON.stringify(data) // data coming in from Express.js input(type='hidden', value=local_data)#myLocalDataObj 然后在我的客户端JS文件中,我可以像这样访问local_data: 在myLocalFile.js内部 var localObj = JSON.parse($("#myLocalDataObj").val()); console.log(localObj.name); 但是,这种分类/解析业务令人感到混乱。我知道我可以将数据对象的值绑定到Jade模板中的DOM对象,然后使用jQuery提取这些值,但是我想访问客户端JS中从Express返回的实际对象。 我的解决方案是否最优,你们将如何实现?

23
为什么节点中的PassportJS无法在注销时删除会话
我无法让我的系统使用PassportJS注销。似乎正在调用注销路由,但它并未删除会话。如果用户未以特定的路线登录,我希望它返回401。我打电话给authenticateUser来检查用户是否登录。 非常感谢! /******* This in index.js *********/ // setup passport for username & passport authentication adminToolsSetup.setup(passport); // admin tool login/logout logic app.post("/adminTool/login", passport.authenticate('local', { successRedirect: '/adminTool/index.html', failureRedirect: '/', failureFlash: false }) ); app.get('/adminTool/logout', adminToolsSetup.authenticateUser, function(req, res){ console.log("logging out"); console.log(res.user); req.logout(); res.redirect('/'); }); // ******* This is in adminToolSetup ******** // …

6
在Express中处理robots.txt的最聪明方法是什么?
我目前正在使用Express(Node.js)构建的应用程序,我想知道在不同环境(开发,生产)下处理不同robots.txt的最聪明方法是什么。 这是我现在所拥有的,但是我对解决方案不满意,我认为它很脏: app.get '/robots.txt', (req, res) -> res.set 'Content-Type', 'text/plain' if app.settings.env == 'production' res.send 'User-agent: *\nDisallow: /signin\nDisallow: /signup\nDisallow: /signout\nSitemap: /sitemap.xml' else res.send 'User-agent: *\nDisallow: /' (注意:这是CoffeeScript) 应该有更好的方法。你会怎么做? 谢谢。

3
Express Passport(node.js)错误处理
我已经研究了如何通过此问题在节点中进行错误处理,Node.js + Express.js应用程序的错误处理原理?,但是我不确定护照认证失败时在做什么。我有以下LocalStrategy: passport.use(new LocalStrategy({ usernameField: 'email', passwordField: 'password' }, function(email, password, next) { User.find({email: UemOrUnm}, function(err, user){ if (err) { console.log('Error > some err'); return next(err); } if (!user) { console.log('Error > no user'); return next('Incorrect login or password'); } if (password != user.password) { return next(Incorrect login or …

4
使用Express在动态路由上服务静态文件
我想像通常那样处理静态文件,express.static(static_path)但像通常那样处理动态路由 app.get('/my/dynamic/:route', function(req, res){ // serve stuff here }); 其中一位开发人员在此评论中提出了解决方案,但我不清楚他的意思。
69 node.js  express 

3
快速路线参数条件
我的Express应用上有一条路线如下: app.get('/:id', function (request, response) { … }); 该ID始终是数字。但是,此路线目前与其他条件匹配,例如/login。 我想我希望从中得到两点: 仅在ID为数字时使用此路由,并且 仅当尚未为该特定参数定义路线时(例如与冲突/login)。 能做到吗?

18
TypeError:db.collection不是函数
我正在尝试将数据发布到在mLab上创建的数据库中,但出现此错误,但我不知道出了什么问题。我是新来的。所以我在这里发布了我要实现的代码,该代码取自本教程https://medium.freecodecamp.com/building-a-simple-node-js-api-in-under-30-minutes- a07ea9e390d2。 server.js const express = require('express'); const MongoClient = require('mongodb').MongoClient; const bodyParser = require('body-parser'); const db = require('./config/db'); const app = express(); const port = 8000; app.use(bodyParser.urlencoded({extened:true})); MongoClient.connect(db.url,(err,database) =>{ if (err) return console.log(err) require('./app/routes')(app,{}); app.listen(port,() => { console.log("We are live on"+port); }); }) db.js module.exports = { url : …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.