Articles of post

Node.js错误:

我最近一直在做一个项目,它需要我POST所需的名字到我的profile.js文件,但是当我做console.log(req.body.bookName) (因为我发送的数据被称为bookName ),它给我的错误[Error: Query is required] 这是我的profile.js代码的后部分 router.post('/', function(req, res){ if(req.session && req.session.user){ Book.find({ owner: req.session.user.username || req.session.user }, function(err, book){ if(err){ console.log(err); } books.search(req.body.search, options, function(error, results) { if ( ! error ) { console.log(req.body.bookName); res.render("profile",{ authenticated: true, info: books, results: results }); } else { console.log(error); } }); }); } else{ res.status(401).send('You must […]

node.js / express不需要从当前页面redirect发送请求

我有一个node.js快速应用程序试图发出一个请求,并查询数据库的内容。 我试图执行发布请求,而不必redirect用户从表单页面或重新加载页面。 index.jade form.well(id="newEntryForm", method="post", action="/addEntry") label Key: br input(name="key", id="key", class="new-entry", type="textbox") br br label Value: br input(name="value", id="value", class="new-entry", type="textbox") br br button.btn(type="submit") Add Entry app.js app.post('/addEntry', function(req, res){ //database query }); 这最终将我redirect到URL localhost:3000/addEntry 。 我知道我可以添加res.redirect("/"); 在post方法的callback中,但是会重新加载页面。 如何在不重新加载页面的情况下完成此操作? 编辑 我添加了一个javascript方法来执行提交表单,但是它最终会在URL栏上附加POST请求参数。 我如何避免这种情况? Javascript方法 $(function() { $('#newEntryForm').submit(function() { var data = {key: 'a', value: 'b'}; […]

无法从request.body中提取发布的数据

这是我的angular度发帖要求: var webCall = $http({ method: 'POST', url: '/validation', async : true, headers: { 'Content-Type': 'text/html' }, data: {email: "abc@gmail.com"}}); webCall.then(successHandler, errorHandler); 现在在我的nodejs服务器中,以下代码提取发布数据: app.post('/validation',function(req,res){ req.on('data',function(data){ console.log(data.toString()); }); 但是安慰请求体为: app.post('/validation',function(req,res){ console.log(req.body); } 控制台空的对象。

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: […]