Tag: 表示

在nodejs中侦听http服务器时出现Express模块​​错误

我已经创build了一个nodejs http服务器 var http = require("http"); var url = require("url"); var express = require('express'); var app = express(); function start(route, handle){ function onRequest(request,response){ var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); route(handle, pathname, response, request); } http.createServer(onRequest).listen(8888); console.log("Server has started"); app.listen(8888); console.log('Express app listening on port 8888'); } 它给错误 f:\Labs\nodejs\webapp>node index.js […]

Node.js和underscore.js – 模板

好的,所以我的问题是非常基本的。 我正在使用Node.js和Underscore作为注册的模板引擎,使用Expressjs框架。 我正在尝试创build部分。 我希望能够做到像你用其他语言做的事情: <% include('header') %> <body id="content"> <span>Blah</span> </body> <% include('footer') %> 你明白了。 那么,有没有人知道一种方法,使这可能使用下划线节点? 编辑: <% var isReturned = false; var isSuccess = false; if(typeof user != 'undefined'){ var isReturned = true; } if(typeof errors == 'undefined'){ var errors = null; } if(typeof success != 'undefined'){ isSuccess = true; } %> <% _.template('header') […]

PassportJS – 如何获取会话对象

我在我的节点应用程序中实现了passportJS。 login后,我得到一个对象,我放在会话中。 这是对象: { loginStatus: 'SUCCESS', orgRoles: { '7': 'ALL' }, orgNames: { '7': 'kianoshp@gmail.com' }, loginId: 4, message: 'Success', success: true } 这是护照configuration(在coffeescript): passport.serializeUser (user, done) -> console.log 'serializing', user done null, user passport.deserializeUser (user, done) -> console.log 'deserializing', user done null, user #passport LocalStrategy passport.use new LocalStrategy usernameField: 'email' passwordField: 'password' , (username, […]

使用ExpressJS为每个文件设置caching控制

有没有一种方法来设置ExpressJS应用程序中每个文件的caching控制属性? 我想要在我的应用程序caching文件的粒度控制…我怎么能实现这一目标? 什么是关于caching控制的最佳实践?

Node.js:TypeError:Object socket.io没有方法'listen'

我正在使用Express 3.0.6使用socket.io 0.9.13做一个小的Node应用程序。 我什至不能开始运行,因为它说socket.io没有方法listen() 。 这里是我的代码(编译后的coffeescript,所以有点难看): (function() { var app, express, io, port, usernames; express = require('express'); app = express(); io = require('socket.io'.listen(3000)); port = 3000; app.listen(port); console.log("Listening on port " + port); console.log('CNTRL-C to quit.'); app.engine('hamlc', require('haml-coffee'.__express)); app.get('/', function(request, response) { return response.render('index.hamlc'); }); usernames = {}; io.sockets.on('connection', function(socket) { socket.on('send-chat', function(msg) { return […]

Node.js https API服务器,但http为静态文件

我使用Node.js为iPhone客户端创buildAPI服务器。 我也使用这个节点服务器发回一些请求的文件,如静态图像等。 现在我用下面的代码创build一个https服务器: https.createServer(options,app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); 这工作正常。 但是,我希望通过HTTP提供静态文件,而不是HTTPS。 这可能吗? 我正在用下面的代码提供静态文件: app.use(express.static(path.join(__dirname, 'uploads'))); 谢谢!

passportjsauthentication使用谷歌应用程序的电子邮件ID

我正在尝试护照与谷歌应用程序电子邮件ID的JS。 我能够使用gmail.com电子邮件ID进行身份validation。 但是,如果电子邮件ID是谷歌应用程序ID(google.com/a/companyname.com),我如何才能进行身份validation。 这是我的代码 var express = require('express'); var app = express(); var passport = require('passport'); var GoogleStrategy = require('passport-google').Strategy; passport.use(new GoogleStrategy({ returnURL: 'http://10.3.0.52:3000/auth/google/return', realm: 'http://10.3.0.52:3000/' }, function(identifier, profile, done) { User.findOrCreate({ openId: identifier }, function(err, user) { done(err, user); }); } )); app.get('/auth/google', passport.authenticate('google')); app.get('/auth/google/return', passport.authenticate('google', { successRedirect: '/', failureRedirect: '/login' })); app.get('/', function(req, […]

在node / mongodb / express中创buildlogin系统。 无法连接到数据库

我正在尝试创build一个login系统,pipe理员可以login并查看公众无法获取的数据。 现在我只是想在我的数据库中find我的pipe理员实例。 我有两个节点文件: app.js和account_manager.js app.js //creates node app var express = require('express'); var app = express(); var mongoose = require('mongoose'); var AM = require('./account_manager'); //stuff… /*************************************** LOGIN ***************************************/ app.post('/login', function(req, res){ AM.manualLogin(req.param('username'), req.param('password'), function(e, o){ if (!o){ res.send(e, 400); } else{ req.session.user = o; res.send(o, 200); } }); }); 在app.js需要account_manger.js并存储在AM中 account_manager.js : var express = […]

干净的URL(可能与slu))

我正在使用mongodb来存储数据。 而默认的_id很长而且不干净。 所以现在我的路线是这样的:example.com/job/sdg3463retgeragsehxcwe35435ert5 工作正常。 但有没有办法自动递增数字并保存自定义ID(像字段名称,serial_number)? 我这样实现它:创build另一个集合来存储上次保存的序列号。 然后在保存新数据的同时增加它。 这工作正常,但有没有更好的办法? 另外,如何保存与slu ur而不是IDS的url? 我需要一个单独的集合来存储slu and和它的相关ID吗? 如果我使用原始mongodb _id,该怎么办? 是否会严重伤害search引擎优化? 还是其他问题? 这工作正常,但只是想知道专业人士如何做到这一点。

mongoose双向模式/多对多的关系

mongoose相当新,所以我正在寻找最好的方法来做到这一点。 我有两个模型: Users和Companies 。 用户可以有很多公司,公司可以有很多用户。 现在我的公司Schema看起来像这样: CompanySchema = new Schema name: type: String unique: true slug: type: String users: [ type: Schema.Types.ObjectId ref: 'User' ] 然后我可以使用.populate('users')来获取关联用户的列表。 那里没问题。 我想知道的是,让所有companies与user相关联的最有效/最好的方法是什么? 我不想像上面那样做,因为列表可能会不同步。 有没有办法,当我更新公司的用户,用户的公司也更新? 理想情况下,我可以做User.find().populate('companies')