http从节点js到嵌套params轨道上的ruby

我试图从一个NodeJS应用程序发送一个POST请求到一个Rails应用程序。 这里是nodejs代码: var http = require('http'); var photoRequest = { photo_request: { bw_quantity: 0, color_quantity: 1 } }; var photoRequestStr = JSON.stringify(photoRequest); var options = { host: 'localhost', path: '/api/v1/photo_requests', port: '3000', method: 'POST', headers: { 'Content-Length': photoRequestStr.length, 'Content-Type': 'application/x-www-form-urlencoded' } }; var str = ''; http .request(options, function(res) { res.setEncoding('utf8'); res.on('data', function(data) { str […]

NodeJS / Express / Mongoose get error发送后无法设置标题

我正在使用Mongoose的MEAN堆栈来查询MongoDB上的数据。 首先调用/ api /validation是好的,但第二次,它总是得到这个错误: 在这里我的代码,server.js: var express = require('express') , app = express() , bodyParser = require('body-parser') , breezeRoutes = require('./breeze-routes') , controller = require('./controller') , compress = require('compression') , cors = require('cors') , errorHandler = require('./errorHandler') , favicon = require('static-favicon') , fileServer = require('serve-static') , http = require('http') , isDev = app.get('env') === 'development' […]

包含gulp-file-include的gulp手表

我使用yeoman / generator-gulp-webapp,并添加了gulp-file-include 。 我build立了gulpfile.js来包含构build文件 ,但是我不知道如何设置gulp手表 。 以下是我尝试这样做,但似乎这是行不通的。 我没有得到任何错误。 一切工作正常,除了index.html有@@包括(…),而不是从这些文件的代码 'use strict'; // generated on 2014-10-27 using generator-gulp-webapp 0.1.0 var gulp = require('gulp'); // load plugins var $ = require('gulp-load-plugins')(); gulp.task('styles', function () { return gulp.src('app/styles/main.scss') .pipe($.rubySass({ style: 'expanded', precision: 10 })) .pipe($.autoprefixer('last 1 version')) .pipe(gulp.dest('.tmp/styles')) .pipe($.size()); }); gulp.task('fileinclude', function () { return gulp.src('app/*.html') .pipe($.fileInclude()) […]

Express.js使用路由器与App.use路由的好处?

根据Express文档 , app.use和Router都实现了路由器接口,可以同时作为中间件。 所以基本上你可以通过做定义路线 app.use(function (req, res, next) { next(); }) 或者你也可以做 var router = express.Router(); router.get('/', function (req, res, next) { next(); }) app.use(router); 我只是想知道是否有一个原因,我会在应用程序使用路由器? 我唯一能find的就是我需要与我的params保持一致。 只是好奇。

MEAN堆栈Facebook授权错误:没有“访问控制允许来源”标题?

我正在尝试在我的MEAN堆栈应用程序上进行Facebook授权。 我正在使用passport和passport-facebook 。 我不使用jade或ejs ,我想使用纯粹的angularjs。 当我运行我的应用程序,并点击“login”button,我得到以下错误: XMLHttpRequest cannot load https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http%…2Flocalhost%3A3030%2Fauth%2Ffacebook%2Fcallback&client_id=…. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3030' is therefore not allowed access. 我做了一些研究,发现node cors模块可以解决这个问题,但是没有。 我做错了什么,我该如何解决? 这里是我的routes.js文件(服务器端): app.get('/auth/facebook', passport.authenticate('facebook')); app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/success', failureRedirect: '/error' })); app.post('/success', function(req, res, next) { User.findById(req.session.passport.user, function(err, user) { if(err){ res.send({success:false}); }else{ res.send({success:true,user: user}); } […]

使用蓝鸟承诺

我有我的人的function,在它内部调用这样的承诺函数 var myPeople = function(){ var go; return new Promise (function(resolve){ User .getPeople() .then(function(allPeople){ go = allPeople; //console.log(go) resolve(go); }) }) return go; } 如果我login我的去块内我得到我的对象,但我不能得到它返回此对象..

使用Meteor访问github仓库中所有文件的名称

正如标题所说,我正在写一个meteor的Web应用程序,并试图访问github回购中的所有文件的名称。 我有一个Node github api包装器(它包装的实际api位于https://github.com/mikedeboer/node-github ),我能够成功地做一些其他的github api调用(即github。 repos.getAll和gethub.user.getFollowingFromUser)。 但是,出于某种原因,当我尝试使用github.repos.getContent时,无论我作为用户名还是回购传入,都会收到404错误。 所以这个工作: github.user.getFollowingFromUser( { user: "ndhoule" }, function(err, res) { console.log(JSON.stringify(res)); }); 但是这不是: github.repos.getContent( { user: "ndhoule", repo: "meteor-github-api" }, function(err, res){console.log(JSON.stringify(res)) }); 这是它产生的错误: I20141029-13:46:01.875(-5)? [error] { [Error: {"message":"Not Found","documentation_url":"https://developer.github.com/v3"}] I20141029-13:46:01.876(-5)? [error] message: '{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}', I20141029-13:46:01.877(-5)? [error] code: 404 } null ndhoule I20141029-13:46:01.877(-5)? undefined 这种情况发生,无论我插入那里的用户名,所以我假设我以某种方式错误地使用getContent方法。 如果任何人都可以弄清楚我的错误是什么(或者可能提出了一个不同的方式来从meteor的回购文件中获取文件名),我将不胜感激这个帮助。 编辑:我试过指定一个path(即使这是一个可选的参数),我得到了一个稍微不同的结果。 修改后的代码: […]

使用自定义方法来扩展ExpressJS / Response对象的正确方法是什么?

现在我通过中间件来扩展请求对象: function(req, res, next) { res.customMethod = function() { } next(); } 但是由于res.prototype命名空间的污染,我认为这是不正确的。 有没有人知道更好的方法,或者expressjs4已经有任何方法呢?

EQMEDOUT在sequelize.sync()

所以当我启动服务器的时候,有大约60%的时间出现这个错误。 [2014-10-31T00:55:30.763Z] ERROR: main/4588 on vagrant-centos65.vagrantup.com: undefined (err.errorno=ETIMEDOUT, err.code=ETIMEDOUT, err.syscall=connect, err.fatal=true) Error: connect ETIMEDOUT at Connection._handleConnectTimeout (/vagrant/node_modules/mysql/lib/Connection.js:346:13) at Socket.g (events.js:180:16) at Socket.emit (events.js:92:17) at Socket._onTimeout (net.js:326:8) at Timer.unrefTimeout [as ontimeout] (timers.js:427:13) at Protocol._enqueue (/vagrant/node_modules/mysql/lib/protocol/Protocol.js:135:48) at Protocol.handshake (/vagrant/node_modules/mysql/lib/protocol/Protocol.js:52:41) at Connection.connect (/vagrant/node_modules/mysql/lib/Connection.js:109:18) at /vagrant/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:41:16 at sequelizeResolver (/vagrant/node_modules/sequelize/lib/promise.js:32:12) at new Promise (/vagrant/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:82:37) at new SequelizePromise (/vagrant/node_modules/sequelize/lib/promise.js:28:17) at ConnectionManager.connect […]

如何将资源上传到node.js的github发行版

我正试图自动发布一些Github版本的资源,我编程创build。 这是我的上传function: function uploadFile(fileName, uploadUrl, callback){ var uploadEndPoint = url.parse(uploadUrl.substring(0,uploadUrl.indexOf('{'))); options.host = uploadEndPoint.hostname; options.path = uploadEndPoint.pathname+'?name=' + fileName; options.method = 'POST'; options.headers['content-type'] = 'application/zip'; var uploadRequest = https.request(options, callback); uploadRequest.on('error', function(e) { console.log('release.js – problem with uploadRequest request: ' + e.message); }); var readStream = fs.ReadStream(path.resolve(__dirname,'builds',fileName)); readStream.pipe(uploadRequest); readStream.on('close', function () { req.end(); console.log('release.js – ' […]