Tag: 表示

如何连接NodeJS / ExpressJS中的两个数组

在NodeJS / Express应用程序中合并两个相同的JSON数组最合适的方法是什么? 我有三个Web服务…两个数据API服务和一个“包装”服务。 这两个数据服务具有相同的对象和模式(通过Mongoose从Mongo拉出)。 我想“包装”服务调用这两个数据服务,并将结果作为一个组合的响应发回。 对象是完全相同的: { "items": [ { "_id": "14e016a2-9eb8-4f83-b597-bda8ad747adb", "name": "Item A 01", "__v": 0 }, { "_id": "4040c450-4624-4341-9a80-211814d630ab", "name": "Item A 02 – Renamed", "__v": 0 }, { "_id": "4fc4e0f7-36bc-4a87-a280-97e4f84a4a43", "name": "Item A 04 – Renamed", "__v": 0 } ] } 我试图结合两个结果集: request('http://localhost:8080/itemsa', function(err, response, body){ if (err || response.statusCode […]

为什么不加载节点的“fs”模块? (错误:对象#<对象>没有方法'readFile')

出于某种原因,我的快递服务器没有正确加载文件系统的“FS”模块。 我正在使用angular-fullstack yeoman生成器。 我的系统是Windows 7,节点版本为0.10.35,npm版本为2.1.18,最新版本为angular-fullstack。 我已经尝试了各种各样的东西,比如32位和64位,并且更新了一切。 routes.js(其他路线加载正常): 'use strict'; var errors = require('./components/errors'); var express = require('express'); var fs = require('fs'); module.exports = function(app) { app.route('/pdf/*') .get(function(req, res) { var pdfPath = app.get('appPath') + '/assets/pdf/test.pdf'; fs.readfile(pdfPath, function(error, data) { res.setHeader('Content-Disposition', 'attachment; filename="test.pdf"'); res.setHeader('Content-Type', 'application/pdf'); res.setHeader('Content-Length', data.length); res.status(200).end(data, 'binary'); }); }); // All undefined asset or […]

在promisified ExpressJs函数中引发错误

我不太确定我是否明白在承诺中如何处理错误(而且我对承诺还是比较陌生的,所以我可能不会充分利用它们)。 我有以下代码: app.listenAsync = Promise.promisify(app.listen); app.listenAsync(config.port) .then(function done() { console.log("We're listening!"); }) .catch(function (err) { console.log("Abort abort!"); }); 由于我不明白的原因,我的catch()从来没有被调用,即使app.listenAsync抛出一个错误,例如EADDRINUSE。 为什么? 编辑 :我只是注意到,如果我这样做 var listenAsync = Promise.promisify(app.listen); listenAsync(config.port) .then(function done() { console.log("We're listening!"); }) .catch(function (err) { console.log("Abort abort!"); }); 给予几乎正确的行为。 listenAsync引发一个错误(这次在catch语句中被catch ) Possibly unhandled TypeError: listener must be a function未被Possibly unhandled TypeError: listener must be […]

在限制之前返回计数并跳过应用mongoose

我有一个在mongoose中定义的模式。 当我想检索所有我打电话的项目 Item .find() .limit(limit) .skip(skip) .exec(function (err, Items) { if(err) { return handleError(res, err); } return res.json(200, Items); }); 在将来我想执行一些过滤,然后计算结果的数量。 如何在限制之前在回复中包含结果数量并跳过应用? 查找后我试着包括count(),但没有运气使它工作。 我错过了什么?

TypeError:POST(MEAN)之后无法读取undefined的属性“body”

我正在尝试将POST数据从AngularJS发送到Express。 我现在正在做的是试图通过curl发送一些POST的东西。 我已经尝试发送数据。 它得到发送,我得到200作为回应。 但是,每当我尝试通过身体分析器通过req.body访问数据,我将得到一个500和我发布在最底部的错误。 我做了很多关于这个问题的研究(过去4-5个小时…),我想我检查了以下常见问题: 我使用某种请求parsing器:body-parser 我需要路由之前把我的app.use(…)与body-parser中间件 我明确地告诉POST使用什么Content-Type 我尝试了application / json和application / x-www-form-urlencoded 我投降。 StackOverflowers。 请帮帮我。 curl: curl -X POST -H "Content-Type: application/json" -d '{"username": "gala", "email": "ga@ga.g", "password": "123"}' localhost:3000/users express.js // glowny plik przygotowujacy aplikacje express // wczytanie zaleznosci var express = require('express') var stylus = require('stylus') var parser = require('body-parser') var […]

在nodejs服务器中引用来自html的java脚本文件

我有一个节点js服务器,当用户命中本地主机时,服务index.html:3000 / app.get('/', function (req, res){ res.render('index.html'); }); 然而,我不知道如何我可以从index.html内引用myscript.js JavaScript文件。 <script src="script/my_script.js" type="text/javascript"></script> 我从这个文件调用一个单击buttonfunction,但在运行时,这个调用给404。请让我知道如何我可以参考index.html中的一个JavaScript文件在nodejs服务器设置。

只能从机器运行服务器访问Express Node.js服务器

我使用快递有一个新手问题。 我正在使用Ubuntu 14.04并创build一个新的目录并在terminal中运行“express”,并设置了一个项目模板。 然后运行“npm install”安装依赖关系。 然后编辑'views / layout.jade'来改变“!!!” 到“doctype的html”作为节点错误时build议尝试运行服务器没有改变。 之后,我通过在terminal上input“node app.js”启动服务器,然后使用“localhost:3000”或“192.168.1.13:3000”在浏览器中看到默认页面。 我的理解是,我应该能够使用“192.168.1.13:3000”从本地networking中的另一台计算机。 然而,当我尝试这个“连接到192.168.1.13 …”大约30秒到一分钟,然后它说:“连接超时…服务器在192.168.1.13是花了很长的时间来回应。 我已经尝试了这两个Windows桌面和Android手机上的Firefox和铬。 我也试着把它设置到80端口,而不是3000结果相同。 我已经尝试在app.listen中添加“0.0.0.0”,但是这个结果也是一样的。 在这个Ubuntu安装中,我从来没有设置过防火墙或端口转发,所以我相信这些不应该成为问题? (是我的路由器的问题?)也许我错了。 这里是相关的文件 – app.js: /** * Module dependencies. */ var express = require('express') , routes = require('./routes'); var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(__dirname […]

Express.js – 在发送响应之前循环

我试图在node.js中实现和现有的解决scheme,具体来说,使用express.js框架。 现在,现有的解决scheme如下工作: 服务器公开一个客户端可以连接的GET服务 当客户端调用GET服务时,客户端编号会增加(一个全局variables),然后检查客户端的数量; 如果没有连接至less3个客户端,则服务处于无限循环状态,等待其他客户端连接 如果(或者说是什么时候)两个客户端的其余部分连接,服务发送响应给每个有足够客户端连接的客户(“真”值)。 因此,基本上发生的是,客户端连接并且连接处于活动状态(在一个循环中),直到有足够的客户端连接,然后才有响应(同时对所有客户端)。 现在我不是这些架构的专家,但是从我的想法来看,这不是一个正确的或者很好的解决scheme。 我最初的想法是:这必须用socket来解决。 然而,由于现有的解决scheme是这样的(它不是写在node.js中),我试图模拟这样的行为: var number = (function(){ var count = 0; return { increase: function() { count++; }, get: function(){ return count; } }; })(); app.get('/test', function(req, res){ number.increase(); while (number.get() < 3) { //hold it here, until enough clients connect } res.json(number.get()); }); 现在虽然我认为这不是一个正确的解决办法,但我有几个问题: 除了使用套接字之外,还有别的办法来解决这个问题吗? 为什么这个“逻辑”在C#中工作,而不是在express.js中? 上面的代码挂起,没有其他请求处理。 […]

将对象附加到Node.js进程

我正在使用环境variables和参数parsing模块nconf作为我的node.js Express web服务器。 https://github.com/indexzero/nconf 我决定让nconf数据全局化的最好方法是简单地将它附加到stream程variables(如process.env中),这是个好主意还是坏主意? 它会减慢执行过程中的“过程”吗? 这是我的代码: var nconf = require('nconf'); nconf.argv() .env() .file({ file: './config/config.json' }); nconf.defaults({ 'http': { 'port': 3000 } }); process.nconf = nconf; //now I can retrieve config settings anywhere like so process.nconf.get('key'); 坦率地说,我有点像这个解决scheme。 现在我可以在任何地方检索configuration数据,而不需要一个模块。 但是这样做可能有缺点,而且这可能是一个非常糟糕的主意。 IDK。

在Express中包含Bootstrap Glyphicons

我试图在快速应用程序中使用glyphicons(通过bootstrap)。 问题是当我服务我的静态文件,graphics不包括在内。 这是我的目录(由grunt创build): Build fonts glyphicons-halflings.eot … js scripts.js stylesheets styles.css 这是我的app.js代码: app.use('/build/', express.static(path.join(__dirname, 'build/js'))); app.use('/build/', express.static(path.join(__dirname, 'build/stylesheets'))); app.use(express.static(path.join(__dirname, 'build/fonts'))); 这是从铬的错误: 用户:GET GET http:// localhost:3000 / fonts / glyphicons-halflings-regular.woff 404(Not Found)发现) 我试过切换到 app.use('/build/', express.static(path.join(__dirname, 'build/fonts'))); 但我很确定bootstrap正在寻找../fonts,所以目录不能完全相同。 换句话说,bootstrap期望的结构是这样的: js/bootstrap.js fonts/glyphs 我在哪里? 感谢大家!