Tag:

Querystring与JSON数据在POST请求

我正在用Javascript写一个项目,使用node.js,express和mongodb,其中包括一个用于将图像发布到服务器的API。 当获取它们时,必要的参数进入查询string,如: domain.com/api/imgs?firstParam=XXX&secondParam=YYY 我不确定发送POST数据的最佳方式。 我到目前为止的想法是: 在查询string中完全发送数据(除了base64编码的img本身,它将在POST数据中) 从查询string中重用GET参数(我需要更新数据库中的数据),然后用POST发送附加参数 在这种情况下最好的做法是什么?

通过requestJS POST请求发送JSON对象和图像文件的数组

我正在使用NODEjs构buildREST API,使用Express路由器和Multer中间件来处理多个主体数据和文件。 我的端点路由127.0.0.1/api/postData期望:带有字段的json数据,其中之一是json对象数组(我有嵌套mongoose模式)和2个命名图像(png / jpg)。 我需要通过cURL发送Post请求与以下5对象的数据结构: name String description String usersArray Array of json objects like: [{"id": "123"}, {"id": "456}] imgIcon Png/Image providing /path/to/imageIcon.png imgHeader Png/Image providing /path/to/imageHeader.png 任何想法如何写request.js节点http请求库的帮助下请求库?

快速路由器不适用于发布请求

我正在开始整个MEAN堆栈的事情。 我正在编写一个小testing/初学者的应用程序来学习基础知识。 我目前正在尝试不同路线的快递路由器。 我有一些麻烦让路线正常工作。 当我去localhost:8000 / api它工作得很好。 但是,当我尝试访问localhost:8000/api/users它返回一个404错误:( 这是我的代码 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var morgan = require('morgan'); var mongoose = require('mongoose'); var port = process.env.PORT || 8000; var User = require('./app/models/user'); mongoose.connect('mongodb://localhost:27017/ApiDataBase'); app.use(bodyParser.urlencoded({ extended: true})); app.use(bodyParser.json()); app.use(function(req, res, next) { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET', 'POST'); res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, […]

如何使用node.js成功实现一个aws实例的http POST?

我正在设置一个aws实例来侦听HTTP POST。 当作为本地主机运行服务器和客户端时,一切似乎工作正常。 然而,当运行试图与客户端发送一个aws实例与服务器运行,我得到一个connect ECONNREFUSED错误。 我正在使用的aws实例(ubuntu服务器)具有对所有ip地址开放的端口80和8080。 我正在使用pm2模块来保持服务器运行。 尽pipe使用pm2给出了相同的错误。 服务器设置:( aws实例terminal) $ sudo apt-get install git $ curl -sL https://deb.nodesource.com/setup | sudo bash – $ sudo apt-get install -y nodejs $ sudo npm install pm2 -g –unsafe-perm 使用节点启动服务器: $ node nodeServerTest.js 使用pm2启动服务器: $ pm2 start nodeServerTest.js –name "nodeServerTest" -i max 服务器代码: // nodeServerTest.js var http = […]

上传没有multipart / form-data的文件(服务器到服务器)

从这个回答https://stackoverflow.com/a/1695287/256400 ,我觉得需要multipart / form-data从浏览器上传文件到服务器。 但是,如果我的用例是上传文件从服务器到服务器不应该工作,如果我把内容types作为application / octet-stream甚至特定的types,如图像/ PNG 我在node.js服务器上试验了这个,并使用fs.readFile来获取文件内容,并使用REST库来执行HTTP POST。 但是我对读取文件时使用的编码有点困惑。 被默认的fs.readFile返回Buffer对象。 我试图使用二进制文件但在这里的文档说,它的二进制被弃用,有利于缓冲区对象。 在这里读取文件的内容和上传的正确方法是什么? 这可以做到没有多部分/forms的数据

在POST中将GZIPed数据发送到node.js服务器时发生错误

我的Node.js服务器需要在POST请求中接收大量压缩的JSON(gzip)数据。 我已经添加了一些代码来gunzip POST的有效负载,但是结果总是不正确的,并且取决于发布的JSON的大小。 var http = require('http'); var zlib = require('zlib'); var port = process.env.port || 1337; http.createServer(function(req, res) { if (req.method == 'POST') { if( req.headers['content-encoding'] == 'gzip' ) { var body = []; req.on('data', function (data) { console.log('Receiving data…'); body.push(data); }); req.on('end', function () { console.log('Data received! Uncompressing…'); var buffer = Buffer.concat(body); zlib.gunzip(buffer, […]

Node.js:提交表单时接收空的主体

我意识到类似的问题已经在这里问了很多,但我仍然无法解决我的问题。 我真的不知道发生了什么事情。 我试图通过post请求从表单发送数据,但不断收到一个空的正文。 表单的Jade代码如下所示:( 编辑:添加enctype ) form(enctype="application/json" action="/test" method="post" name="login") table tr th label(for="username") Username td input(type="text" name="username" placeholder="username") tr th label(for="password") Password td input(type="password" name="password" placeholder="password") tr tr th td input(type="submit" value="Login") 其中生成以下HTML代码( 编辑:添加HTML代码): <form enctype="application/json" action="/test" method="post" name="login"> <table> <tr> <th> <label for="username">Username</label> </th> <td> <input type="text" name="username" placeholder="username"> </td> </tr> <tr> <th> […]

创build并发送Zip文件 – NODE JS

我试图创build,然后发送zip文件到客户端。 我知道如何创build它,但发送给客户端时遇到问题。 我尝试了很多方法。 我正在发送来自客户端的POST请求,并作为响应我想发送一个文件。 这是我的服务器站点示例代码 var Zip = require('node-zip'); router.post('/generator', function(req, res, next) { var zip = new Zip; zip.file('hello.txt', 'Hello, World!'); var options = {base64: false, compression:'DEFLATE'}; fs.writeFile('test1.zip', zip.generate(options), 'binary', function (error) { console.log('wrote test1.zip', error); }); res.setHeader('Content-disposition', 'attachment; filename=test1.zip'); res.download('test1.zip'); } }); 我也尝试过这样的事情: res.setHeader('Content-disposition', 'attachment; filename=' + filename); res.setHeader('Content-type', mimetype); var filestream = […]

NodeJS – 将命令行输出存储为var,并通过res.send()将其返回给客户端

我目前正在使用NodeJS在应用程序的后端工作。 作为我的代码的一部分,我读了一个文件的第一行,并使用res.json发送到客户端。 我的代码看起来像这样 var hr = 'head -n 1 ../' + req.file.path + '_hr.txt'; exec(hr, function (error, stdout, stderr) { console.log(hr); console.log(stdout); console.log(stderr); res.json({ "heartrate": stdout }); }) 当我执行这个,但是我得到 {"heartrate" : ""} 即使在后端的控制台上,我也会看到stdout的值。 我已经看了其他相关的问题,但我得到的信息是零碎的。 我意识到stdout产生的对象不是一个string。 我尝试了toString()方法,但没有奏效。 因为exec是asynchronous的,所以我还在res.json中放了一个if(stdout),可能stdout在我调用console.log(stdout)的时候可能没有被写入,但是这也不起作用。 我也尝试使用产卵而不是执行无效,虽然我可能错误地使用它。 我相信我的问题的解决scheme非常简单,但我一直无法find它。 任何帮助将不胜感激!

使用rest api解决jira中的问题

我可以在JIRA中解决这个问题吗? 我用REST API做了一些试验, var url = "https://hibernate.atlassian.net/rest/api/2/issue/WEBSITE-1/transitions"; var message = [{ "update": { "comment": [ { "add": { "body": "some text for body" } } ] }, "fields": { "assignee": { "name": "name1" }, "resolution": { "name": "Fix" } }, "transition": { "id": "1" } }]; request({ url: url, method: "POST", json: true, body: message, […]