Articles of 表示

快速bodyParser

Node.js和Express有一个很大的问题。 我想使用我的请求的body元素,但我不知道如何在我的程序中使用bodyParser() ; 它不只是app.use() … 你自己看: requestServer = function(){ var express = require('express'); this.ex = express; //this.app = require('express')(); this.app = express(); this.server = require('http').createServer(this.app); this.io = require('socket.io').listen(this.server, {log: false}); this.socket = []; this.app.post('/test/', this.testFunction.bind(this)); this.io.sockets.on('connection', this.socketConnection.bind(this)); this.app.use(express.bodyParser()); }; … requestServer.prototype.positionChange = function(req, res){ console.log(req.body); // says its undefined??? console.log(req.body.name); // also undefined 🙁 }; […]

在express.js中实例化的控制器中的“this”的意外值

“this”似乎并不涉及实例化的预算控制器对象。 相反,它似乎是指全局对象。 有人知道为什么吗? 我已经定义了一个预算模型。 注入控制器,我试图简单地生成一个随机的6个string,当我在我的应用程序中打/预算。 相反,这个.DEFAULT_SLUG_LENGTH是不确定的,我不明白为什么。 这是一个愚蠢的testing案例,说明这个问题。 在引用另一个函数中的this.budget来根据slug值查询数据库时,我遇到了类似的问题。 //models/budget.js var Schema = require('jugglingdb').Schema; var schema = new Schema('postgres',{url:process.env.DATABASE_URL}); var Budget = schema.define('budgets',{ total: Number, slug: String }); module.exports = Budget; ==================== //controllers/budget.js function BudgetController (budget) { this.budget = budget; }; BudgetController.prototype.DEFAULT_SLUG_LENGTH = 6; BudgetController.prototype.generateSlug = function (req,res) { var slug = ""; var possible = […]

ExpressJS,MongooseJS和Jade的Textarea Linebreak

在翡翠,我有一个formstextarea。 form(action='save') textarea(name='description') input(type='submit') 描述保存到mongodb。 我为此使用mongoosejs 。 description: String 用description呈现玉石时,我有: p #{description} 用换行符显示描述的最好方法是什么?

添加元数据来expression路线

有什么方法可以将元数据添加到路线中? 例如: app.get("/some/route", function(req,res) { // … }, {some: 'meta-data}); 我正在看我的节点应用程序的一种AOP方法,所以我想用身份validation和/或日志logging来代理某些路由。 要做到这一点,我需要能够为每个路由分配一些钩子标识符,以表明它应该被代理,所以AOP一无所知的个别方法和方法对AOP框架一无所知… 然后,不要太多的话题,我会使用像钩子或其他代理库来检查所有路线,其中有some并添加一个thing拦截器。 那么无论如何,有什么最佳做法的方式来做这种事情?

通过结构化的Express应用程序提供html和javascript

我目前正在玩Express,并试图解决(我相信应该是)一个微不足道的问题。 我有以下的目录结构: |-config |—config.js |—routes.js |-server.js |-scripts |—controllers |——controllers.js |—directives |—filters |—services |—templates |—app.js |-views |—index.html 我的server.js var express = require('express'); var app = express(); require('./config/config.js')(app); require('./config/routes.js')(app); app.listen(7777); 我的config.js module.exports = function(app){ app.set('views', __dirname + '../views'); app.engine('html', require('ejs').renderFile); } 我的routes.js module.exports = function(app, express){ app.get('/', function(reg, res){ res.render('index.html') }) app.use(function(err, req, res, next){ console.error(err.stack); res.send(500, […]

我可以通过Express中的下一个function传递数据吗?

在使用Express ,我有一个像这样的路线: app.get('*', function (req, res, next) { // no route is matched // so call next() to pass to the static middleware next(); }); 还有另外一个类似app.get('/myroute', function(req, res, next)…的路线app.get('/myroute', function(req, res, next)… 我可以通过从第一个通过next一个路线的信息?

在快速应用程序内部制作多个应用程序

我来自Django的背景,基本上,框架允许大量的模块化代码。 我已经在nodejs和express中创build了一个简单的博客引擎。 然而,所有的路线最终都在我的主要app.js文件,或者更确切地说app.coffee ,因为我用我的nodejs应用程序,遵守JavaScript的coffeescript。 所以,这就是我的路线: app.get('/', index.index) app.get('/users', user.list) app.get('/blog', blog.blogList) app.get('/blog/:id(\\d{5})', blog.blogEntry) 现在,这里的问题是,如果我想按类别对这些进行sorting,那么会发生这种情况,那么我必须将另一个app.get函数添加到同一个文件中。 码: app.get('/blog/categores/:cat(\w+), blog.someotherview) 如果我想按时间添加sorting,例如: app.get('/blog/time/:year(\\d{4}), blog.someYearView) 我想要做的是委托一切关于/blog由blog.js处理例如。 理想情况下,如何从主要app.js文件中获取所有这些路线? 你可以通过在django中使用include()方法来实现。

Express中的查询参数被提取?

我正在为Node.JS编写一个AppleScript应用程序的API。 AppleScript应用程序以下面的forms运行在shell脚本中: do shell script ("cd " & quoted form of myDir & " curl http://localhost:5000/server.properties?some-value=true&next-value=something%20else&[…] -O") 它打算下载名为server.properties的文件到基于指定参数的内容的目录myDir ,但由于某种原因,当Express收到请求时,它显示只有当我运行console.log(res.originalUrl) : /server.properties?some-value=true 它将把这个请求视为没有其他参数被指定。 任何人都可以告诉我我做错了什么,或者如何找出错误的地方? 编辑原来是我运行shell脚本的方式。 该URL需要被引用,以便&在shell脚本中不作为操作符。

使用express.bodyParser()和passport.js

我正在使用express.js和passport.js在节点服务器上工作。 我处于一个条件,我不想在app.use(passport.initialize())和app.use(passport.session())之前使用express.bodyParser() app.use(passport.session()) 。 如果我在两个护照中间件函数之后执行app.use(express.bodyParser()) ,它们会使req-stream混乱,bodyParser不再工作。 我只想在一些特定的路线使用bodyParser,而不是在整个应用程序。 我做了什么来规避这个错误是以下(在每一个我想保护和使用bodyParser路线): app.post(route, express.json(), passport.initialize(), passport.session(), isAuthenticated, controller); 但是我认为这有点讨厌。 有没有解决办法让它干?

Jade不会显示mysql的结果

我使用node.js,express,jade和mysql。 \\app.js var db_config = { host: 'localhost', port: '3306', [redacted] }; var connection = mysql.createConnection(db_config); … app.get('/events', routes.events(connection)); \\index.js exports.events = function (db) { return function (req, res) { db.connect(function (err) { if (err) { console.log('error\'d:', err); } }); db.query('SELECT name FROM event', function (err, rows, fields) { if (err) throw err; else { […]