Express / Node.js:渲染自定义JavaScript作为响应

在我的应用程序中,我需要提供一个API(类似Google Maps JavaScript API),通过这个API我可以发送一些自定义的javascript(带有一些会话和请求相关信息)作为响应。 然后用JavaScript在UI上绘制一些graphics。 我使用Express作为我的模板引擎。 我目前使用的代码是: app.use('/graph',function(req, res){ //send out graph data var var_name = req.session.var_name //fetch something from session var graphData = fetchGraphData(req.query.graph); //function that fetches graph data res.contentType("text/javascript"); res.render(__dirname + '/views/graph.jade', { title: "Title", queryStr: JSON.stringify({var_name: var_name, graphData: graphData }) }); }); 玉档: | some_var_name = { | initGraph : function(divId){ | […]

为什么我需要在更改swig模板时重新启动express服务器?

通常,在Express中使用EJS模板时,我不必重新启动服务器即可查看对模板所做的更改。 我只是对.ejs文件进行更改并重新加载浏览器以查看我的更改。 但是,使用swig模板(我非常喜欢ejs),如果对.html文件进行更改,则必须重新启动服务器以查看浏览器中反映的更改。 这是一个错误,还是只是我忽视的其他东西的副作用? 我不是在寻找像grunt watch,nodemon或supervisor这样的工具,我只是希望我的swig模板的行为更像ejs模板,如果可能的话。

如何得到Restify服务器的确切的IP地址在听?

考虑下面的代码为restAPI节点服务器。 var restify = require('restify'); var server = restify.createServer(); server.get('/echo/:name', function (req, res, next) { res.send({name: req.params.name}); next(); }); server.listen(8080, function () { console.log('%s listening at %s', server.name, server.url); }); 用节点运行该服务器: $ node echo.js restify listening at http://0.0.0.0:8080 它显示0.0.0.0这是错误的。 任何人都可以如何控制台login服务器的确切的IP时,它打开? 谢谢 更新 :执行下面的代码,我得到下面提到的输出,这又是很难,哪个IPselect? rest_server.listen(config.appPort, function () { var adrs = require('os').networkInterfaces(); console.log(adrs); console.log('%s listening at […]

mongoosedate格式

目前有一个问题从mongoose检索date。 这是我的模式: var ActivitySchema = new Schema({ activityName : String , acitivtyParticipant : String , activityType : String , activityDate : { type: Date, default: Date.now } , activityPoint : Number }); 默认使用“mm.dd.yyyy”,所以我所有格式为“dd.mm.yyyy”的数据默认为Date.now。 有没有人知道是否有一个“格式:”dd.mm.yyyy“function,我可以直接放在架构?任何其他的想法?(真的不想更新所有的数据) 谢谢你的回复

如何设置环境variables来永久运行meteorjs

你如何设置环境variables来永远运行meteorjs? 如果我做出口并永远运行,像这样 export PORT=80 MONGO_URL=mongodb://localhost:3002/appname sudo forever -f start bundle/main.js 永远不会运行与节点meteorjs捆绑: /Users/../bundle/server/server.js:166 throw new Error("MONGO_URL must be set in environment"); ^ Error: MONGO_URL must be set in environment at run (/Users/../bundle/server/server.js:166:11) at Object.<anonymous> (/Users/../bundle/server/server.js:331:1) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/Users/../bundle/main.js:1:63) […]

尝试为Google身份validation器插入二维码图片时出现400错误请求

我正在尝试使用Google Authenticator在我的网站上设置双因素身份validation。 我能够生成工作代码,但是当我将图像URL插入到页面中时,在Chrome检查器中出现以下错误: GET https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/MyLabel?secret=THESECRET 400 (Bad Request) 生成QR码的代码: try key = crypto.randomBytes(10).toString('hex') catch error console.log "error generating code: #{error}" encoded = base32.encode(key) label = encodeURIComponent "MyLabel" uri = "otpauth://totp/#{label}?secret=#{encoded}" url = "https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=#{uri}" 插入图像的客户端jQuery: img = $("<img>").attr("src", url) $("#qr_box").html("") $("#qr_box").append(img) 这会导致页面上的以下HTML: <img src="https://www.google.com/chart?chs=200×200&amp;chld=M|0&amp;cht=qr&amp;chl=otpauth://totp/MyLabel?secret=THESECRET"> 图像可以打开一个新的标签没有问题。 该图像只能在我的页面大约1/10时间成功显示; 其他时间铬给400.我在这里错过了明显的东西?

使用node-postgres从SELECT返回结果

无法从node-postgres中的SELECT查询中获取结果。 现在,在代码块的末尾,行是空的。 这个select只是从POSTGRESQL的一个序列中返回下一个值。 我知道你不能从callback中获取结果,但是在这里有没有人使用过node-postgres(或者任何其他数据库模块到节点)来解决这个问题? client.connect(); var query = client.query("SELECT nextval(\'idgenerator\');"); var rows = []; query.on('row', function(row, res) { rows.push(row); }); query.on('end', function(result) { console.log(result.rowCount + ' rows were received'); }); //client.end(); console.log(rows);

在Node.js中parsingxls / xlsx / xlsm

在Node.js中运行,我需要能够从Excel .xls,.xlsx和.xlsm中parsing单元格的值 。 有解决scheme吗? 我怀疑有一个单一的模块可以做到这一点,所以也许有一种方法可以将两种格式内部转换成第三种格式,并且只有一种格式的分析器? 有没有其他人遇到过这个问题? 如果是这样,你提出了什么样的解决scheme? 任何帮助是极大的赞赏。 谢谢

获得Node.js应用程序总时间执行的更好方法是什么?

我做了一个Node.js应用程序,它和C#中的另一个解决scheme完全一样。 这两个应用程序从一个目录recursion获得所有JavaScript文件,并执行uglify-js命令来缩小文件。 我的项目有大约150个JavaScript文件来缩小,而C#方法大约需要22秒来完成所有的工作(使用线程 )。 在阅读Node.js文档和书籍之后,我决定采用Node.js方式。 我已经这样做,但我不能做总体时间报告Node.js做的东西,因为它的asynchronous方法… (是的,我知道,我使用C#中的线程也是asynchronous的) 那么,获得Node.js应用程序总共执行时间的更好方法是什么? 我使用Node.js v0.10.13作为win32环境。

现在是否可以使用GetUserMedia API从networking摄像机读取videostream,并直接发送到服务器进行进一步的广播?

我需要build立一个Web应用程序,使用WebRTC获取networking摄像机videostream和麦克风audiostream,并立即将其转换到服务器进一步广播到多个客户端。 该应用程序必须在全双工实时进行。 我的意思是这将是一种实时video聊天。 这将是某种教育应用程序。 所以问题是:现在有可能吗? 我应该使用哪些技术? 我应该在后端使用带有WebSocket和Node.js的WebRTC吗? 或者我可以使用PHP而不是节点? 我可以使用Socket.io吗? 有没有其他方法来实现这一目标? 可能是闪光?