Tag: express

mongoose是虚拟的吗?

好吧,所以我有这个SchemaOptions,架构,构造和虚拟。 var schemaOptions = { toObject: { virtuals: true }, toJSON: { virtuals: true } }; var clientSchema = mongoose.Schema ({ company: { type: String, trim: true, required: true, unique: true }, monthly_cost: { type: Number, trim: true, required: true }, sms_cost: { type: Number, trim: true, required: true }, … }, schemaOptions); var Client […]

尝试覆盖input区域中的预填充数据

我正在试图在Jade文件中显示一个input区域,其中存储在mongodb会话存储中的会话信息从预先填充的数据中收集。 Web应用程序构build在Express for node.js上。 我的Jade文件与input区域(预填入会话数据)类似: input(name='username', value='#{username}') 所以input区域显示存储在会话中的正确的用户名。 然后,我希望用户能够编辑该字段并根据需要提交新的用户名。 我的mongodb更新()如下所示: uname = request.body.username; targetcol.update({username: req.session.username, password: req.session.password}, {username: uname}); 一旦提交,相关configuration文件的mongodb集合中的文档就不会被更新,而是保持与预先填充的值相同的值。 我想知道这是因为我在Jade文件中将它赋值为一个value=吗? 有什么不对的build议,以及如何解决?

在节点服务器中调用rest服务

我已经在Node服务器中创build了一个restfull服务 express().use('/getdata', express() .get('/', function (req, res) { //…. }) .put('/', function (req, res) { //…. }) ); 当我从前端/浏览器执行GET或PUT到http:// localhost / getdata时,它的工作正常。 那么基本上如何在节点服务器上做同样的事情呢,在使用HTTP对象的节点服务器上获取请求。 urlpath将如何?

Azure网站上的Node.js 404错误

我正在Azure网站上运行Node.js 0.10.15&Express应用程序,并且在有人input无效URL时发生404错误。 我得到通用The page cannot be displayed because an internal server error has occurred. 我尝试访问无效的url时出错。 以下是发送404页面的app.js文件末尾的代码: app.get('/*', function(req, res) { res.status(404).sendfile('public/404.html'); }); 奇怪的是,当我在本地运行我的服务器时,Express似乎正在正确地将404与HTML文件一起发送,但是当它在Azure上运行时,它会窒息并且不会给我一个有用的错误。 日志显示请求按预期工作: [Thu, 24 Oct 2013 01:10:39 GMT] "GET /asdfsadf HTTP/1.1" 404 – "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" 我怀疑这个问题不知何故在于我的web.config文件: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <httpErrors existingResponse="PassThrough" […]

Express'req.params的格式是什么?

在使用Express时,我遇到了与req.params有关的奇怪事情。 它适用于调用下属属性 – 例如:res.json(req.params.paramName); 给我所需的paramName值。 但是,当我试图通过res.json(req.params)将整个res.params对象传递给客户端时,我只是在浏览器中获得一个空数组[],而不是我期待的JSON对象。 (res.send给出了相同的结果。) 再深入一点,我把req.params放到了控制台上: console.dir(req.params); 得到这个: [ creator: '1', timeStart: '2', timeEnd: '3', dateDensity: '4' ] 武汉理工大学? 这甚至在JavaScript语法上是可能的吗? 如果req.params是一个简单的对象,如Express代码和文档所示,我应该得到: { creator: '1', timeStart: '2', timeEnd: '3', dateDensity: '4' } 像上面得到的数组应该是可能的,应该吗? 我做了一些理智的检查,并将一些testing对象传递给控制台: console.dir([{foo:1}, {arr:2}, {gog:3}, {blah:4}]); console.dir({foo:1, arr:2, gog:3, blah:4}); 和控制台转储给我: [ { foo: 1 }, { arr: 2 }, { gog: […]

MissingSchemaError:架构没有被注册为模型,mongoose.model在架构之前调用

我得到这样的错误,这些是堆栈跟踪线,从开始: 这是我的主节点服务器文件,我加载路由 require('./config/routes')(app); 这是路由文件,将要求 var todos = require('../app/controllers/todos'); controller 这是控制器,在第2行给出错误: var mongoose = require('mongoose'), Todo = mongoose.model('Todo'), _ = require('underscore'); 这是我的模型文件,似乎没有被调用: var mongoose = require('mongoose'), Schema = mongoose.Schema; var TodoSchema = new Schema({ created: { type: Date, default: Date.now }, content: { type: String, default: '', trim: true } }); TodoSchema.path("content").validate(function(content) { return content.length; }, […]

Heroku – dyno没有明确的理由给出错误H12-503

我有一个node.js应用程序与2个Web dynos在heroku上运行。 我使用express作为web服务器。 运行了几个小时之后,一个测功机或两者停止响应,并在日志消息中看到如下所示: 013-11-24T14:14:48.697766+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path=… host=… fwd=… dyno=web.2 connect=7ms service=30003ms status=503 bytes=0 重新启动应用程序解决了这个问题,但它可能会再次发生。 事故发生前没有发生高峰期,日志中没有提示有什么不好的事情发生。 我有这个应用程序的newrelic,但没有任何提示问题的提示。 build议采取什么行动来解决这种情况? 有可能/build议有heroku重新启动dynos停止响应?

节点js中间件asynchronous请求mongo

现在我正在关于我的nodejs应用程序。 但是我有一些问题。 所以我需要添加头像字段来发布对象。 它看起来像这样。 在MongoDB中有2个模型用户和post。 发布有userId字段为一对多的关系。 和用户有头像是我在屏幕上存储图像标记的string。 但是我想显示所有post与用户头像,这是我的家庭方法从controllers / articles.js exports.home = function () { Article.list( function (err,articles) { _.each(articles, function (item){ User.find({is:item.id}, function(err, user) { item.avatar = user.avatar }) }) }) } 但它不起作用。 我明白这是asynchronous问题。 但我不知道如何解决它。 我不想改变我的mongodb结构。 而且我不想在每个请求期间获得所有post和所有用户。 所以,也许你帮助我吧。 它桅杆是与中间件东西 – 但我已经尝试过,并没有帮助。

如何使用快递基本authentication和护照

我正在使用Passport和NodeJS / Express应用程序进行用户身份validation,并且工作良好。 不过,我想用基本身份validationlocking某些部署(类似于Apache上的.htaccess基本HTTP身份validation),例如登台服务器。 更清楚的是,我有一个在本地运行的开发环境。 我有一个testing环境,每个构build启动。 我有一个临时环境用于黑盒testing,最后是一个生产环境。 我想申请基本的身份validation到登台环境,以便用户/传递组合需要甚至到达它。 基本身份validation通过后,所有其他function应该可用。 我已经试过Express内置的basicAuth,它运行良好,只是它填充了req.user,这是Passport使用的。 因此,我的会话被污染,以至于Passportlogin和登出不再正常工作,因为它认为用户已经login。 以下是我使用basicAuth的片段: // Basic auth (for staging env) // Note: I'm checking for my dev env just to test this if (process.env.NODE_ENV == 'development') { app.use(express.basicAuth('dev', 'abc123')); } 是否有另一种方法可以用来代替basicAuth,或者我可以使用basicAuth来实现这个function吗?

定义mongoose和纲要唯一的

您好,我正在开发与express和mongodb的nodejs应用程序。所以我必须在我所有的路由js中定义mongoose和模式来使用mongo和模式。 我只想定义他们。 我是node.js的新手,请耐心等待。 我的项目结构: 我的route.js如下所示: var routes = function (app) { app.locals.error=null; app.get('/login', function (req, res) { return res.render(__dirname + "/views/login", { title: 'Giriş', stylesheet: 'login' }); }); var mongoose = require('mongoose'); mongoose.connect("mongodb://localhost/fuatblog"); var UserSchema = new mongoose.Schema({ name: String, email: String, password: String, age: Number }), Users = mongoose.model('Users', UserSchema); app.post('/sessions', function (req, res) […]