Tag: 表示

我可以防止多个静态目录在Express生产404?

我试图从2个不同的文件夹中提供文件,目的是让我的pipe理员和客户端文件夹完全分开。 我有下面的代码来启动文件夹,但是如明确寻找example.css ,如果它没有find它的第一个/静态目录,它会发送一个404错误,然后它find它在第二个目录中。 app.use(express.static(__dirname + "/static")); app.use(express.static(__dirname + "/alternate_static")); 有没有什么办法,我可以让它如此expression不服务的404,除非它无法find任何多个文件夹中的文件,或者这是一个潜在的问题,我应该在gitHub上发布? 编辑:尝试使自己更清晰…如果我有一个目录如下; /static /alternate_static/index.js 我尝试加载index.js,Express将首先查看/static然后它将logging一个404错误,因为它找不到该文件,那么它将search/alternate_static ,它会find该文件,并继续为该文件提供服务。 我希望能够阻止第一个404发生。 编辑:解决。 它似乎是某种caching与favicon的问题 谢谢

ES6 – 如何导入连接mongo(会话)?

在ES6之前,我是如何导入connect-mongo (session)的: var MongoStore = require("connect-mongo")(session); 但是我怎样才能在ES6中导入? import MongoStore from 'connect-mongo'; let monStore = MongoStore(session); 错误: const Store = connect.Store || connect.session.Store; ^ TypeError: Cannot read property 'Store' of undefined 有任何想法吗?

如何使用NodeJS构buildconfiguration并表示?

道歉的基本问题,但我很新的NodeJS和Express 我想为我的本地,testing和生产环境单独的属性(如数据库连接string或encryption密钥等) 我想知道什么是最好的方法来做到这一点? 如果任何人都可以指向一个教程或任何最佳实践,将不胜感激 谢谢达米安

Node.js拦截Promise并详细说明Response

我开始使用Node.js + Express,现在正在编写HTTP API结构。 我有一个控制器,使用以下模式公开一些方法: my_controller.js 'use strict'; var AppApiFactory = function (express, appService) { var api = express.app; /* Get all apps ordered by Name Ascending */ function getAllApps(request, response) { appService.getApps(request.query.$expand).then(function (apps) { response.status(200).send(apps); }) .catch(function (err) { console.error('Error occurred in Apps Api: ' + err); response.status(500).send("" + err); }); } /* Routing […]

PassportJS – 是否可以改变req.user为另一个用户?

在我的应用程序中,我已经实现了更改用户权限,级别等function。如果更新我自己的权限,我可以立即看到更改,因为我可以通过req.login()更新req.user对象req.login() 。 问题是,当我更新另一个用户权限时,它在数据库中更新就好了,但是用户将不得不重新login以查看他们的权限更改,因为req.user仍然认为他们没有权限。 这很好,如果他们没有login当然,但如果他们是,我想这个变化立即反映给他们,如果可能的话。 所以我想知道是否有方法来更新另一个用户req.user对象,以便他们可以立即看到他们的权限变化,而不必注销和返回? 或者返回之前注销并login该用户的一种方法?

使用Express启动时创build预定作业

我正在进入Express,并遇到了一个问题。 我有一个应用程序提供一个REST API。 这一切工作正常。 但是我想用node-schedule( https://www.npmjs.com/package/node-schedule )来添加一个预定的作业。 我已经实现了这个模块: var schedule = require('node-schedule'); var scheduler = { scheduleJob: function(monitor) { var job = schedule.scheduleJob('* * * * *', function(){ monitor.check(); }); return job; } } module.exports = scheduler; 在app.js中,我添加了以下内容,因为我发现了一个类似的堆栈溢出问题。 这不适合我: app.on('listening', function () { console.log("App started, gathering monitors"); var allMonitors = queries.getAllMonitorsInt(); for (var i = […]

用摩卡expressiontesting:基于承诺的testing不会自行运行?

我有两个testing文件。 当只有test1.js存在时,没有testing运行,并且mocha报告“0通过”testing。 当test1.js和test2.js存在,但都依赖于承诺,那么仍然没有testing运行,摩卡仍然报告“0通过”。 但是,当其中一个testing被修改为不使用诺言时,摩卡运行两个testing,他们成功。 有没有搞错? 这是我的文件: index.js: require('./server').then( function(server) { server.listen(8080, function() { console.log("Started server"); }); ); server.js: var express = require('express'); var server = express(); module.exports = new Promise((function(resolve, reject) { return resolve(server); })); test1.spec.js: require('./server').then(function(server) { describe('Test Suite #1', function () { it('should run test #1', function testSomething(done) { return done(); }); }); […]

自定义响应消息,validation节点js中的所有必需参数

我是NodeJS和Express的新手,我想validationAPI参数。 现在我通过以下方式validation参数: if(!req.body.parametername) return res.send({"message": "Please provide parametername"}); if(!req.body.parametername) return res.send({"message": "parametername can not be blank"}); 但是我想让回复如下所示: { "username": [ "This field is required." ], "password": [ "This field can not be blank." ] } 这是我想要的,如果参数无效或没有提供的响应。

如何在单个npmtesting命令中运行mochatesting和节点? (CI)

我想用Circle CI来集成一个git项目。 我正在使用mocha进行testing。 我想做的事? 运行npm test我想: 我的节点服务器启动 我的testing文件运行 我怎样才能运行一个npm test命令来运行节点和我已经包装在一个index.js文件中的mochatesting。 我已经在我的package.json试过了: "scripts": { "test": "node server/app.js & mocha server/tests/index.js", "start": "node server/app.js", "postinstall": "bower install" } 以上的问题 我的服务器需要一些时间才能启动,并且testing失败,因为它们在服务器启动之前运行 有一个标准的方式来运行一个服务器和单一命令的testing,但我错过了什么?

用户和angular色授权在swigger api express中

人 在我现有的api上,我已经拥有使用承载安全性的用户authentication。 使用http头api_key和后来的令牌。 我的问题似乎是我有不同的终点,只需要根据angular色消耗。 例如,发布一个新用户: POST user should only be authenticated to user with admin role. 我在这里看了一下swagger规范,但没有我能find他们的docuemation和谷歌以及。 请给我一些脑筋急转弯的想法? 下面是我在nodejs和express中的访问validation代码。 swaggerTools.initializeMiddleware(swaggerDoc, function (middleware) { // Interpret Swagger resources and attach metadata to request – must be first in swagger-tools middleware chain app.use(middleware.swaggerMetadata()); app.use(middleware.swaggerSecurity({ Bearer: function(req,def,apiKey,next){ apiKey= apiKey.slice(7) debug("token check",def,apiKey) var ok=checkToken(apiKey) if(ok) { req.user=ok debug('Token is […]