Tag: 表示

expressjs查看variables

我正在努力弄清楚这一点,我相信这并不复杂。 出于某种原因,我从下面的代码中得到错误: /* * GET home page. */ exports.index = function(req, res){ exec('ls -l ~/Sites/branches | grep "^d"', function (error, stdout, stderr) { // var lines = stdout.split("\n"); // var folder; // lines.forEach(function(line){ // folder = line.match(/([^\s]+)$/igm); // if (folder!='null') { // sys.puts(folder); // } // }); res.render('index', { title: 'Express', lines: 'hi' }); }); […]

使用socket.io将应用程序连接到节点服务器

我试图连接一个客户端应用程序(用c ++编写,尽pipe不应该有任何影响)到使用express和socket.io编写的node.js服务器。 服务器几乎归结为: var express = require('express'); var http = require('http') var app = express(); var server = http.createServer(app) var io = require('socket.io').listen(server); app.use(express.cookieParser()); app.use(express.session({ … })); app.use(app.router); // response handling ——- app.get('/', function(req, res){ console.log('request get /'); }); io.sockets.on('connection', function(socket) { console.log('sockets.io connection!'); }); // ——- port = 3000 app.listen(port); console.log('Listening on port: ' […]

会话pipe理,Node + Express和Mongoose模式对象

我正在使用Node.js + Express + Mongoose,并使用Mongoose Schema来存储“会话”数据。 同时,我正在使用“connect-mongodb”进行会话pipe理(本地驱动程序)。 直到今天,我已经意识到我有多余的function。 所以,我试图将我的Schema对象添加到“req.session”。 它似乎工作,但是我在下一个请求中释放了我的Schema对象的Moongosefunction。 我考虑的一个select是存储在'req.session'中的对象的id,然后使用Mongoose来检索它。 我考虑的另一个select是用Mongoose会话pipe理器replace“connect-mongoose”。 你可以帮我做决定,并推荐一个方法。 更具体地说,如果我使用Mongoose解决scheme,是否可以解决与我的Schema对象失去Mongoosefunction的问题? TIA

用jQuery在客户端添加Jade块的内容

当页面加载时,我有一些从Jade加载的内容(例如,连接的用户列表)。 这个内容是dynamic的,通过socket.io消息通知客户它的变化。 客户端的jQuery脚本必须添加新的内容或删除旧的内容 。 问题是新的内容可能非常复杂(例如,用户的所有信息),我必须在客户端脚本中重写HTML代码(而jQuery不是为此而devise的)。 我试图克隆和编辑现有的结构(可以隐藏),但我认为这不是最好的方法。 例 服务器端 #usersList each user in users .userBox .userName #{user.name} .userCountry #{user.country} .userMail #{user.mail} 客户端 websocket.on('newUser', function(user) { $('<div class="userBox">'+ '<div class="userName">' + user.name +'</div>'+ '<div class="userCountry">' + user.country +'</div>'+ '<div class="userMail">' + user.mail +'</div>'+ '</div>').appendTo($('#usersList')); }); 客户端代码是可怕的。 我想知道我是否可以在Jade中拥有一块内容,然后执行此操作。 websocket.on('newUser', function(user) { $(jade.userBox(user)).apprendTo('#usersList'); }); 如果不可能,最好的方法是什么?

Mongoose报告成功写作,数据库中没有任何东西

mongoose成功callback正在运行,但没有出现在我的数据库,当我通过控制台与Mongo交互。 任何人都可以帮助为什么什么都没有出现在数据库? app.js var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path') , mongoose = require('mongoose'); var app = express(); var TimesheetsController = require(__dirname + '/controllers/timesheets'); var UsersController = require(__dirname + '/controllers/users'); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); […]

发送PHP GET请求到Sockets.IO

我试图从PHP(CLI)发送一个GET或POST请求到一个Node.js / Sockets.IO应用程序,只使用基本的cURL。 这是我到目前为止,我可以看到响应进入node.js(从cli),但不能得到任何更远。 目前我只想把参数发送到控制台。 (我可以在以后扩展) 任何帮助将是伟大的! (仅供参考:我从php源代码看了这个, Socket.io ,但是需要更多的帮助,精确的代码会很棒) PHP $qry_str = "?msg_from_php=This_is_a_test123&y=20"; $ServerAddress = 'http://10.1.1.69/socket.io/1/websocket/TICWI50sbew59XRE-O'; $ServerPort = '4000'; $TimeOut = 20; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ServerAddress. $qry_str); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); curl_setopt($ch, CURLOPT_PORT, $ServerPort); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $TimeOut); curl_setopt($ch, CURLOPT_TIMEOUT, '3'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); // not sure if […]

express.js不是asynchronous调用相同的路由器callback?

当调用'/ a'时,可以立即执行'/ b'。 但是如果我调用另一个'/ a',第二个等待第一个结束。 我怎样才能使'/一个真正的asynchronous调用? 码: app.get '/a', (req, res, next) -> f = -> res.send 'a' console.log 'end', new Date() console.log 'sleep', new Date() setTimeout f, 10000 app.get '/b', (req, res, next) -> res.send 'b' 输出: Express server listening on port 3000 in development mode sleep Sun Oct 14 2012 12:37:52 GMT+0800 (SGT) […]

Node.js / Express / Redis只等待来自通道的一条消息

我有一个redis连接订阅了一个获取请求的频道 app.get('/wait', function (req, res) { redisSub.on('message', function(channel, msg) { console.log('rcv: ' + msg); }); }); 后来用不同的获取请求发送消息 app.get('/done/:msg', function (req, res) { redisPub.publish('message', req.params.msg); }); 问题是我希望这个请求一旦得到就停止收听消息。 否则,当我再次经历时,它仍然在听,并且会再次得到下一个消息。 一旦收到消息,我不确定如何从自身中删除监听器。

Expressjs +句柄格式化date

我有这个对象 { title: 'A TITLE', description: 'Lorem Ipsum…', _id: 50806930bbf612a858000013, __v: 0, screenings: [ { venue: 'Venue1', dates: [Object] }, { venue: 'Venue2', dates: [Object] } ] } 从我的mongoDB出来。 dates是一个dates列表(DAH!)。 我的问题是现在我想让他们与服务器端的时间格式化。 这看起来应该是我应该使用胡子lambdas,但它似乎不可能使用我的堆栈( expressjs , 巩固 , 把手 …) 有人解决了这个? 这就是我现在要做的 Theatre.find({"screenings.dates":{$gte:lastSunday, $lte:nextSunday}}, function(err, entities){ res.render('index', { entities: entities, giveitatry: function(a) { return moment(a).format("MMM Do YY") […]

基于Express和Mongoose的REST API – 在将对象返回给用户之前,过滤掉对象的某些属性

我使用Express和Mongoose在Node.js之上构build了一个RESTful API 我在我的模式中使用的某些字段/属性仅供内部使用,根本不应该被API用户看到。 在res.send()之前删除它们的最好方法是什么? 我必须手动执行每个路线(获取,发布,更新)还是有一个通用的方法来过滤掉它们? 我尝试使用自定义中间件,但是这并不起作用 – 当我在使用(app.router)之前放置中间件时,res.body是未定义的,如果放置后,我的中间件从未被调用过。 另外,由于在中间件中,我正在处理单个文档和文档数组,我宁愿find一种方法来处理每个文档。