Tag: post

NODEJS:如何用Restify读取Body参数?

我是Node / Restify的新手,在这里一定是错过了一些愚蠢的东西,但是我一直在这个问题上徘徊。 希望有人能帮助。 我试图用restify从POST请求读取Body参数。 我发现的一切似乎表明,我所需要的是server.user(bodyParser()),但它不工作,我不知道为什么,我不知道如何进一步排除故障。 任何人都可以帮我指出我在这里做错了什么吗? 我创build了一个简单的服务器如下: var restify = require('restify'); var server = restify.createServer(); server.use(restify.bodyParser()); server.post("/test", function(req, res){ console.log(req.params); console.log(req.body); res.send(200); res.end(); }); server.listen(8081); 然后我运行下面的POST请求: POST /test?GET_PARAM=def HTTP/1.1 Host: localhost:8081 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: keep-alive Content-Length: 33 POST_PARAM1=abc&POST_PARAM2=ghi 这会在控制台中产生以下结果: debugger […]

如何使用Chai Http发布对象数组

我试图用ChaiHttp这样发布一个对象数组: agent.post('route/to/api') .send( locations: [{lat: lat1, lon: lon1}, {lat: lat2, lon: lon2}]) .end (err, res) -> console.log err, res 它返回一个错误,如下所示: TypeError: first argument must be a string or Buffer at ClientRequest.OutgoingMessage.end (_http_outgoing.js:524:11) at Test.Request.end (node_modules/superagent/lib/node/index.js:1020:9) at node_modules/chai-http/lib/request.js:251:12 at Test.then (node_modules/chai-http/lib/request.js:250:21) events.js:141扔呃; //未处理“错误”事件^ 错误:在Zlib._handle.onerror错误的标题检查(zlib.js:363:17) 我也试图像这样发布信息,就像我们对邮递员所做的一样: agent.post('route/to/api') .field( 'locations[0].lat', xxx) .field( 'locations[0].lan', xxx) .field( 'locations[1].lat', xxx) .field( […]

如何使用Express和Node仅在POST上添加中间件

我有一个中间件,只有在http方法发布后才能应用。 以下工作正常,但我觉得有一个更好的办法: 'use strict' const express = require('express'), router = express.Router() router.use((req, res, next) => { if (req.method === 'POST') { // do stuff } return next() }) module.exports = router 我想要做这样的事情,但它不起作用: 'use strict' const express = require('express'), router = express.Router() router.post((req, res, next) => { // do stuff return next() }) module.exports = router

如何从Node.Js Express中的发布数据接收(并解码)JSON?

假设我用以下代码发送了数据: $.ajax({ type: "POST", url: "/save/" + #{key}, data: transitions2, success: function (data) { }, dataType: "json" }); 其中transitions2是分层的JS对象。 现在我怎样才能在服务器端完整地收到它 router.post('/save/:key', function(req, res) { // where is my data here? }); UPDATE 我find了关于body parser的信息,发现我的网站模板已经包含了它们。 特别是, app.js包含: … var bodyParser = require('body-parser'); … // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); […]

Node.js / Express忽略iOS JSON POST

我试图从一个iOS应用程序的数据发布到Node.js / Express。 我无法得到它的工作; Node / Express似乎忽略了我的请求,当我尝试从我的应用程序。 但是,如果我导航到我想要在Web浏览器中发布的同一个URL,则Node / Express将作出响应。 这是处理传入请求的Node / Express代码: var express = require('express'); var app = express.createServer(); app.configure(function(){ app.use(express.bodyParser()); }); app.get('/', function(req, res) { res.write('nothing to see here…'); res.end(); }); app.get('/test', function(req, res) { console.log('handling post!'); console.log(JSON.stringify(req.body)); res.end(); }); 这就是我试图将JSON发布到Node: // Create request data. NSString* jsonData = @"{\"test\" : \"someMoreTest\"}"; NSData* […]

使用application / x-www-form-urlencoded使用node.js发送数据

我试图发送post请求到API和post参数应该是数组,这是如何发送它在cURL curl http://localhost:3000/check_amounts -d amounts[]=15 \ -d amounts[]=30 我试图在Node.js中使用请求模块来做到这一点 request.post('http://localhost:3000/check_amounts', { form: { 'amounts[]': 15 , 'amounts[]': 30 } }, function(error, response, body) { console.log(body) res.json(body); }); 但第二个数量覆盖第一个数量,API得到的结果如下: amounts = [30] 然后我尝试以不同的方式发送 request.post('http://localhost:3000/check_amounts', { form: { 'amounts[]': [ 15 , 30] } }, function(error, response, body) { console.log(body) res.json(body); }); 但结果不是预期的amounts = [{"0":15},{"1":30}] 注意:标题应该包含'Content-Type':'application / […]

获取“第一个参数必须是string或缓冲区”错误

// call the packages var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var figlet = require('figlet'); var querystring = require('querystring'); var http = require('http'); var fs = require('fs'); var request = require('request'); // configure app to use bodyParser() // this will let app get the data from a POST app.use(bodyParser.urlencoded({ extended: […]

AJAX后快速返回没有数据req.query(是的,有相同的q,但没有任何工作)

这是我的设置。 但是当我通过ajax发送数据的时候,body是空的。 在networking下的Chrome上,我看到了post和内容,正确的有效载荷: {"EventName":"asd","PrivacyLevel":1,"TypeInt":1,"ExpectedDate":"asd","Desc":"asd","Down":0,"Up":0,"PostCode":"","Address":"","ID":""} 大多数人说它的身体parsing器,我已经把parsing器放在app.use(app.router)之上我不知道它是否与express.json()创build任何冲突,但是当我评论它没有任何区别。 app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(express.cookieParser('secret')); app.use(express.session({ secret: 'randomstring' })); app.use(express.bodyParser()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); $.ajax({ url: window.location.origin + '/registerEvent', contentType: 'application/json: charset=utf-8', dataType: 'json', type: 'POST', data: JSON.stringify(Event.toJSONString()), cache: false, timeout: 5000, async: false, success: function (result) { success = […]

nodejs http post请求抛出TypeError

我试图做一个简单的服务器,使用谷歌oauth(没有明确和passportjs,因为我想研究数据交换)。 当我的程序试图发送一个post请求到google时,nodejs抛出: http.js:593 throw new TypeError('first argument must be a string or Buffer'); 我已经检查并确保查询和选项中的所有参数都是string,但错误仍然存​​在。 我在这里错过了什么? 这是我的代码: // Load the http module to create an http server. var http = require('http'); var url = require('url'); var fs = require('fs'); var querystring = require('querystring'); var content; fs.readFile('./test.html',function(err,data){ content = data; }); // Configure our HTTP server to […]

在Node.js中使用Express.js获取POST参数

我想要使​​用Express请求后获取一些POST参数,但我无法获取数据。 这是我的app.configure : app.configure(function() { app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(gzippo.staticGzip(__dirname + '/public')); app.use(gzippo.compress()); }); 在POST HTTP请求之后,我试图在控制台输出它: console.log(req.body); 对象总是空的。 任何想法,我忘了什么?