Articles of express

无法使用nvm在全球安装快速生成器

我正在使用NVM来避免使用sudo来安装全局。 它适用于所有从鲍尔,到Grunt等,但是,当我做npm install -g express-generator它不工作。 例如,inheritance我在全球安装Bower时所得到的结果: npm install -g bower /Users/jrdillon522/.node/bin/bower -> /Users/jrdillon522/.node/lib/node_modules/bower/bin/bower bower@1.3.12 /Users/jrdillon522/.node/lib/node_modules/bower ├── is-root@1.0.0 … … … ├── update-notifier@0.2.0 (semver-diff@0.1.0, string-length@0.1.2, latest-version@0.2.0, configstore@0.3.1) ├── mout@0.9.1 ├── handlebars@2.0.0 (optimist@0.3.7, uglify-js@2.3.6) ├── inquirer@0.7.1 (figures@1.3.3, mute-stream@0.0.4, through@2.3.6, readline2@0.1.0, lodash@2.4.1, cli-color@0.3.2, rx@2.3.14) └── insight@0.4.3 (object-assign@1.0.0, async@0.9.0, chalk@0.5.1, os-name@1.0.1, lodash.debounce@2.4.1, tough-cookie@0.12.1, configstore@0.3.1, inquirer@0.6.0) 工作正常吗? 当我安装Express Generator时,我得到了一个经典的错误: npm […]

Node.js连接到一个mongodb

我一直在关注这个教程 ,试图让mongodb node.js,express和jade一起工作,但是我不能让我的程序从数据库访问任何信息。 这里是应该访问数据库的app.js中的代码。 var mongo = require('mongodb'); var monk = require('monk'); var db = monk('localhost:27017/nodetest1'); ….a few lines down…. app.use(function(req,res,next){ req.db = db; next(); }); 这里是处理路由的代码: /* GET Userlist page. */ router.get('/userlist', function(req, res) { var db = req.db; var collection = db.get('usercollection'); collection.find({},{},function(e,docs){ res.render('userlist', { "userlist" : docs }); }); }); 这里是userlist.jade中的代码:它被devise为纯粹地弄清楚用户列表的内容是什么。 它应该包含数据库中的信息(其中有3个条目,每个数据有2个数据)。 […]

NodeJS Express需要和启动

我正在学习NodeJS和Express,然后我坚持要求工作。 我有主文件作为server.js和另一个testing文件作为test.js。 [server.js] var express=require('express'); //Include Routes var rTest=require('./routes/test'); //Express Application COnfiguration var app=express(); var port=process.env.PORT||3000; var router=express.Router(); //Index router.get('/',function(req,res){ res.json({message:'Welcome to Index!'}); }); app.use('/api/t',rTest); //Test app.listen(port); [routes / test.js] var express=require('express'); var router=express.Router(); router.route('/') .get(function(req,res){ res.send('Now Test Running OK!'); }); module.exports=router; 代码按预期工作 – 去http://localhost:3000/api/t打印“Now ..”消息。 所以我的问题是,为什么我不是在test.js中创build快速应用程序,而肯定是从express.Router()引用路由器? 当我试图用mongoose创build一个CRUD时,这会变得更加混乱。 为什么我必须在testing路由器文件中引用mongoose模块和模式,但不必像在主server.js文件中那样build立连接。 到目前为止,我已经理解了这个require对于我使用的模块来说实际上是本地的,这实际上是有意义的,因为每次我需要在其他模块中引用依赖模块。 但是我不必在路由文件中重新build立连接,也不必在路由文件中侦听某个端口,在路由文件中使用body-parser(当我使用它的时候)。 任何指针都会有所帮助。 提前致谢。

button更新node.js和HTML

我正在尝试使浏览器/计算机之间的基本计数器。 (我是新来的)。 该button只能工作大约1/12的时间。 我如何使它更一致? 谢谢! 我的服务器端node.js看起来像: var express = require('express'); var app = express(); var hits = 0; app.get('/main.html', function (req, res, next) { console.log('bye'); next(); }); app.get('/', function (req, res, next) { console.log('hello'); next(); }); app.get('/add', function (req, res) { console.log('added hits'); hits++; }); app.get('/hitNum', function (req, res) { console.log('hits req'); res.end(hits+''); }); app.use(express.static(__dirname […]

Node JS – Express – Mongo DB:在JSON密钥中使用额外的方括号发布数据

我试图使用快递将数据发布到节点js。 下面的代码是我用来发布数据到服务器。 var data = {}; data.opt = []; data.opt.push({label:"Rahul",name:"Rh"}); $.ajax({ type: "POST", url: '/save', data: data, dataType: "JSON" }); 当我从NodeJS获取数据时,我正在接受JSON opt: [ { '[label]': 'Rahul', '[name]': 'Rh' } ] 在上面的数据中,额外的方括号是在opt的关键值中加上的 请帮助我如何删除这个方块。 提前致谢。

对JavaScript文件的更改不会立即生效。 gulp browserify任务可能存在问题

当对JavaScript文件进行更改时,在更改生效之前,经常需要长达10秒的不断刷新页面。 我知道Chromecaching了很多,我已经使用了一些技术来解决这个问题: 我已经设置caching控制头'no-cache,no-store',添加一个基于当前时间的查询string到每一个JavaScript文件(我已经证实,这实际上每次刷新时都会改变),我有启用开发工具中的“禁用caching”选项。 但是,JavaScript文件仍然不能立即加载… 编辑:经过一些更多的testing后,我发现我的node.js应用程序中的gulp browserify任务(构build客户端JavaScript包)在gulp重新启动后5-10秒之前不会更新构build。 然而,这是奇怪的,因为吞吐量输出“3.24毫秒后完成”browserify“。 这就解释了为什么JavaScript文件不能在浏览器中刷新,但我无法弄清楚为什么不能立即刷新。 有没有人经历过这个?

天青node.js请求,响应 – 寻求一些澄清

我正在使用Azure移动服务 – NodeJS后端,编程时,我总是面对这个疑问 – 让我解释一下使用下面的代码片段 //————————————————————————– function addUserToDB(request, response){ ///some code here var theUser = request.user; ///get the user's entity object try { objAppUser = buildAppUserEntityObj(theUser, request); //for simplicity sake, lets say this is not asynchronous function } catch (err) { console.log ('error in addUserToDB when calling buildAppUserEntityObj'); //****????**** request.respond(statusCodes.BAD_REQUEST, err); return; // ##????## is […]

使用相对URL从NodeJS / Express实例执行Python脚本

我正在开发一个依赖NodeJS和Express模块​​的Web应用程序,在这个模块中,我试图从一个快速路线运行一个Python脚本。 我想要做的是将Python脚本存储在/public/scripts/test.py并使用诸如/scripts/test.py的相对URL来引用它,以便Node不需要知道任何关于环境的信息它正在运行。 我试图通过使用python-shell模块和简单地使用Node内置的ChildProcess来执行Python脚本。 在这两种情况下,我遇到了同样的问题 – Python脚本的path似乎被视为绝对的,因此脚本不执行,导致文件未find错误。 我该如何去调用一个相对URL的Python脚本? 我对networking开发相当陌生,如果我只是误解了这个情况,我不会感到惊讶。 编辑:正如jfreind00指出的,process.cwd()可以用来标识当前的工作目录上的脚本可以build立一个URL的顶部。 像魅力一样工作。

使用dynamic密钥推送到MongoDB数组

我试图通过dynamic密钥推送数据 数据库结构: { "obj1":{ "array":[ { "field1":"text1" }, { "field2":"text2" } ] }, "id":123; }, { "obj2":{ "array":[ { "field1":"text1" }, { "field2":"text2" } ] }, "id":1234; } 我试图使用variables作为地图path中的键: var a = 'obj2'; db.collection('fooCollection').update({'id':1234},{$push:{a.array:{ "field3":"text3"}}}); 如果我做: db.collection('fooCollection').update({'id':1234},{$push:{"obj2.array":{ "field3":"text3"}}}); 它的工作原理,但我非常需要使用dynamic密钥。

Sails.js和Mocha:使用supertest创build一个新的模型

我目前正在为我的Sails应用程序设置testing基础架构,并且一直在顺利进行,直到我尝试使用supertesttesting来testingAPI请求。 我试图testing一些我的控制器方法(我实现,而不是使用默认蓝图路线),但似乎API请求甚至没有经过。 我认为这是因为我可以运行npm test ,这段代码运行良好,但是如果我将POSTpath更改为/datamodel/create5 ,其中create5()不作为控制器方法存在,它仍然运行正常。在这两种情况下,都不会创buildDataModel模型。 我已经在下面包含了一些代码。 这是我的代码看起来像: var request = require('supertest'); var assert = require('assert'); var async = require('async'); var stubs = require('../stubs.js'); describe('DataModel', function() { var testDataModel; var dataModelParams = stubs.dataModelStub(); // simply returns a JSON dictionary describe('#create()', function() { describe('data model import', function() { it('should import a new data model.', function (done) […]