Tag: 响应

错误被抛出,但错误响应对象在Mongoose中为空

我正在尝试向我的API发送请求。 我的代码是这样的 app.post('/api/create', (req, res, next) => { if (!req.headers || !req.headers.authorization) { return res.status(500).json({ status: 'error', err: 'No authorization header' }); } const bits = req.headers.authorization.split(' '); const scheme = bits[0]; const token = bits[1]; jwt.verify(token, 'secret', function(err, decoded) { if (!!err) { return res.status(400).json({ status: 'error', err: 'Invalid credentials.' }); } // const […]

无法使用邮递员从express.js服务器得到回应

当我从邮递员请求数据时,请求数据显示服务器,但服务器的响应,即状态码和JSON对象没有发送到邮递员,邮递员正在加载…一段时间后,它说无法从服务器得到响应。 这里是我的server.js类 var bodyParser = require('body-parser'); var express = require('express'); var {mongoose} = require('./db/mongoose'); var {Todo} = require('./models/todo'); var {Users} = require('./models/Users'); var app = express(); app.use(bodyParser.json()); app.post('/todos', (req, res) =>{ var todo = new Todo({ text: req.body.text }); todo.save().then((doc) => { res.send(doc); }, (e) => { res.status(400).send(e); }); }); app.listen(3000, () =>{ console.log('started at […]

在response.write + nodejs中传递variables以显示进度值

我试图上传文件使用ckeditor和上传文件到S3,我成function够上传文件到S3并取回url,但是想要显示在浏览器iframe用户的进展。 使用s3上传器,我可以在发射器的“进度” var uploader = client.uploadFile(params); uploader.on('progress', function () { var percent = ((parseInt(uploader.progressAmount) * 100) / parseInt(uploader.progressTotal)).toFixed(2); return callback(null,{type : 'progress', percent: percent, url : null}); }); s3上传 s3uploads(fileUrl, function (err, uploadResult) { if (err) { res.send("error"); } if (uploadResult.type === 'progress') { html = "<p>Please wait its uploading to server </p> <p>" + […]

Node.js Express – 如何结合文件创build和sendFile

我知道我们可以像这样在nodeJs中创build一个新的文件: let writeStream = fs.createWriteStream(name); writeStream.write("f1,f2,f3"); writeStream.write("1,2,3"); writeStream.end(); 如果我们有一个文件的绝对path – 我们可以发送它作为一个回应: res.sendFile(name); 但是,我们如何结合这一点,就像我得到一个创build报告的发布请求一样,我做了一些查询,把结果放到一个csv文件中,然后发回相同的新创build的文件? 更新:我看到sendFile工作正常 – 但响应正在作为文本 – 我的问题更多是 – 如何从ajax请求触发csv下载 – 而不是表单提交。 是否有可能 – 因为这似乎是一个巨大的安全风险

Nodejs Http请求没有响应

目前使用http GET到外部API。 当被单独调用时,响应是好的。 当放在for循环中时,有些请求似乎没有响应。 这是http GETfunction: function httpGetChunk(url, callback) { http.get(url, function(resp) { var body=''; resp.on('data', function(chunk) { body += chunk; //chunk too large from this response }); resp.on('end', function() { var data = JSON.parse(body); callback(data); }); resp.on("error", function(e) { console.log("Got error: " + e.message); }); }); } 当我在for循环中为5个不同的url调用GET函数时,我只能得到其中一些的响应。 经过几次,回应将来自被叫url的不同组合,但从来都不是。 任何见解? 编辑1:为了提供更多信息,我的for循环看起来像这样。 for (var i=0;i<5; […]

curl获取POST响应,但node.js没有获得POST响应

当我使用下面的命令时,我得到正确的JSON响应: $ curl –data "regno=<reg-number>&dob=<dob>&mobile=<mobile>" https://vitacademics-rel.herokuapp.com/api/v2/vellore/login 当我使用下面的节点JS代码,我没有得到回应: var request= require('request'); var querystring=require('querystring'); var credentials={regno: '13bit0036', dob:25051995, mobile:9431222422}; console.log(querystring.stringify(credentials)); request.post({ url: 'https://vitacademics-rel.herokuapp.com/api/v2/vellore/login', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body:querystring.stringify(credentials), }, function(error, response, body){ if(error) { console.log(error); } else { console.log(response.statusCode + '\n' , body); } });

从nodejs后端发送callback到前端

我有一个fileUpload(用NodeJS制作),我想在{{upload.message}}中的html中显示上传的成功。 我用AngularJS实现了它,但是没有奏效。 我究竟做错了什么? HTML <form enctype="multipart/form-data" action="/upload" method="POST"> <div class="form-group"> <input type="file" name="file" /> <p></p> <input type="file" name="file" /> <p></p> <input type="file" name="file" /> <br> <br> <input type="submit" value="Upload File" name="submit" class="btn btn-primary"> </form> <span>{{upload.message}}</span> </div> 的NodeJS router.post('/upload', function(req,res){ upload(req,res,function(err) { var fileNames = []; req.files.forEach(function(element){ fileNames.push(element.filename); }) console.log('Selected Files: ', fileNames); if(err){ res.end("Error: '" […]

将节点请求响应响应上传到MongoDB

我在Node里玩Cheerio。 我有一个刮到一个文章列表,抓住所有的文章url,然后去每篇文章,刮标题和url。 一切工作正常,除非当我尝试将结果上传到我的Mongodb,我得到undefined。 我假设它试图在定义值之前插入…但即使使用请求响应,我也无法使它工作。 任何帮助将不胜感激! 由于代码不是太长,我只需粘贴整个事情,这样就可以更容易地看到我正在尝试做什么。 再次,主要的问题是获取upsertArticle实际上插入variables。 const request = require('request'); const cheerio = require('cheerio'); const rp = require('request-promise'); const mongoose = require('mongoose'); const Article = require('./models/article'); var urls = []; //get the list of articles to scrape rp('https://www.somesite.com/', function(error, response, html) { if (!error && response.statusCode == 200) { var $ = cheerio.load(html); $('.c-entry-box–compact__title').each(function(i, […]

node.js HTTP请求parsing(使用networking模块)

在Net node.js模块的顶部写一个HTTP简单服务器,不使用HTTP模块。 我有一个服务器监听本地主机:端口打开一个套接字。 socket.on('data', function(data){ clientMsg += data; }); 一旦我在浏览器中input地址,我可以看到GET请求在clientMsg中。 为了返回我使用的回应: socket.on('close', function(){ something response generating here}); 但是,这只是在浏览器中单击“ESC”或“STOP”时才发送响应。 所以问题是,怎样才能知道浏览器完成发送消息并等待响应,而不closures连接?

请求来自不存在的站点的HTTP响应时,Node.js脚本将中断

使用Node.js,当请求HTTP响应时,在最佳情况下,请求返回一个HTTP响应。 但是,有时请求会因为网站的404代码或网站根本不存在而中断。 当请求一批URL时,如果在所请求的1000个URL中有第404个代码(例如,第200个URL),则整个脚本会中断。 这是我的代码: var hostNames = ['www.gizmodo.com','www.sitethatdoesnotexist123.com','www.google.com']; for (i; i < hostNames.length; i++){ var options = { host: hostNames[i], path: '/' }; (function (i){ http.get(options, function(res) { var obj = {}; obj.url = hostNames[i]; obj.statusCode = res.statusCode; obj.headers = res.headers; db.scrape.save(obj); }).on('error',function(e){ console.log("Error Site: " + hostNames[i]); }); })(i); }; 有没有办法,例如,如果该网站不存在,我只是跳到下一个url,而不是脚本中断? 编辑:修正。 感谢用户DavidKemp