Articles of 表示

无法使用节点快递发布到服务器

我试图从postman发布数据到我的节点服务器,我一直得到404。 我的代码是否正确设置为接收发送到http://localhost:8080/back-end/test ,如果不是,我该如何解决? var express = require('express'); var request = require('request'); var nodePardot = require('node-pardot'); var bodyParser = require('body-parser'); var rp = require('request-promise'); var app = express(); var port = process.env.PORT || 8080; // Start the server app.listen(port); app.use(bodyParser.json()); // support json encoded bodies app.use(bodyParser.urlencoded({extended: true})); // support encoded bodies console.log('Test server started! At http://localhost:' […]

Mongoose更新文档或插入新文档如果没有findID(Express REST API)

我已经build立了一个Express REST Api,并且想实现一个检查某个对象ID是否存在的任务。 如果该ID存在于Mongo数据库中,我想使用Put请求来更新这个文档。 这部分已经在我的代码中工作。 如果ID尚不存在于数据库中,我想创build一个新的文档。 要做到这一点,我试图将“upsert”选项设置为true,但是,如果我现在做一个ID的放入请求,这是不是在我的数据库,但它回来的错误: throw er; // Unhandled 'error' event ^ CastError: Cast to ObjectId failed for value "34455ab67" at path "_id" for model "event" 这里是我的事件模型代码: var mongoose = require('mongoose'); var eventSchema = mongoose.Schema({ name: { type: String, required: true } }); var Events = module.exports = mongoose.model('event', eventSchema, 'event'); module.exports.updateEvent = […]

你应该发送DB错误给用户吗?

在我写的NodeJS / MongoDB服务器中,我有很多的API调用来存储用户和数据库中的内容。 Mongoose已经调用了MongoDB,在查询之后,它将返回一个带有错误(如果有的话)和一个文档(如果有一个返回的)的callback函数。 我想知道如果我应该把错误发送给用户,扔它(停止整个服务器),或只发送500错误。 例: accountDocument.save(function (err, account) { if (err){ res.status(500).json(err); // Option 1 – sends DB error to user res.status(500).end(); // Option 2 – just notifies there was a problem throw err; // Option 3 – stops the server completely } else res.status(200).json(account); }); 我应该select哪一个?

在express.js中传播运算符表单提交

可以传播运营商解决以下问题? 想象一下,我有更多的领域,那么我必须为每个领域声明req.body.something,这是非常乏味的。 app.use((res,req,next) => { const obj = { name: req.body.name, age: req.body.age, gender: req.body.gender } // User.saveUser(resp => res.json(resp)) //User model })

更改嵌套callback函数中的variables

基本上我试图完成的是从handleMusicAPICalls函数获取结果,并将其推送到结果数组中,该结果数组在get路由的callback函数中声明。 目前当我运行这个时,第一个输出是“[]”(从第二个console.log),然后在它下面是我想看到的实际数据(第一个console.log)。 有什么build议? router.get("/activities", middleware.isLoggedIn, function(req, res) { var destination = req.query.destination; var startDate = req.query.daterange.replace(/\s+/g, '').split("to")[0]; var endDate = req.query.daterange.replace(/\s+/g, '').split("to")[1]; var activities = req.query.activities; var results = []; helper.handleMusicAPICalls(destination, startDate, endDate, activities, function(res) { console.log(res); results.concat(res); }); console.log(results); });

Expressjs。 从原型函数调用构造函数中的函数时,TypeError

我试图从原型调用构造函数中的函数,但不断得到下面的错误,我不知道什么是我的代码错了。 TypeError: this.authorize is not a function 这是我的代码:controller.js var Controller = function() { this.authorize = function(req, res) { if (!req.user) { res.redirect("/"); } }; }; Controller.prototype.online = function(req, res) { this.authorize(req, res); res.render('./play/online'); }; var controller = new Controller(); module.exports = controller; route.js var router = require('express').Router(); var controller = require('../controller'); router.get('/online', controller.online); module.exports = […]

Socket io集群在同一个端口上

我需要群集socket.IO服务器,并希望为所有连接使用相同的端口 为了做到这一点,我创build快递服务器,configuration它,然后告诉socket.IO听此服务器 if(cluster.isMaster){ var cpuCount = require('os').cpus().length; for (let i = 0; i < cpuCount; i += 1) { cluster.fork(); } else { const credentials = {key: privateKey, cert: certificate}; const app = express(); const httpsServer = https.createServer(credentials, app); httpsServer.listen(8003); const io = SocketIO.listen(httpsServer); } 但是,这不适用于多个服务器。 当我试图连接到套接字服务器时,我得到以下消息: websocket.js?13d9:112 WebSocket connection to 'wss://…' failed: Error during […]

body-parser按索引parsing

在后端使用DataTables前端和nodejs + express + mongoose + body-parser 当我试图删除表中的一行时,这是传递给后端(HTTP DELETE) action:remove data[5957c1368225f446c84dde9b][_id]:5957c1368225f446c84dde9b data[5957c1368225f446c84dde9b][updatedAt]:2017-07-01T15:35:18.407Z data[5957c1368225f446c84dde9b][createdAt]:2017-07-01T15:35:18.407Z data[5957c1368225f446c84dde9b][account]:test@gmail.com data[5957c1368225f446c84dde9b][name]:Beryl Welch data[5957c1368225f446c84dde9b][number]:074-882-4899 x241 data[5957c1368225f446c84dde9b][email]:Naomi.Lemke@yahoo.com data[5957c1368225f446c84dde9b][__v]:0 我试图从DELETE请求中获取值_id 5957c1368225f446c84dde9b 我想弄清楚如何在不知道它的情况下访问这个值,因为这个值实际上是从mongo中删除的文档的ID 如果我req.query stringify,这是我得到的 {"action":"remove","data":{"5957c3e07c5c3c150c10f5cb":{"_id":"5957c3e0 7c5c3c150c10f5cb","updatedAt":"2017-07-01T15:46:40.635Z","createdAt":"2017- 07-01T15:46:40.635Z","account":"test@gmail.com","name":"Breanna Ratke","number": "(055) 304-7364 x20329","email":"Mathilde.Moore51@hotmail.com","__v":"0"}}} 有任何想法吗? 谢谢/ T

混淆命名/select请求参数

我有困难试图了解如何请求参数命名(例如req.params.id,req.body.authorid等),以及他们如何与其他variables相关。 他们可以分配任何随机的名字? (例如req.params.x,req.body.y) 对于author_delete_get函数中的以下代码,似乎只接受req.params.id 。 把它req.params.x例如req.params.x将会导致错误。 至于author_delete_post函数,将req.body.authorid改为例如req.body.authorids似乎不会影响function。 authorController.js // Display Author delete form on GET exports.author_delete_get = function(req, res, next) { async.parallel({ author: function(callback) { Author.findById(req.params.id).exec(callback); }, authors_books: function(callback) { Book.find({ 'author': req.params.id }).exec(callback); }, }, function(err, results) { if (err) { return next(err); } //Successful, so render res.render('author_delete', { title: 'Delete Author', author: results.author, […]

Nodejs Express无法联系到此站点?

我对Node完全陌生,我试图在主机centos 7(vultr.com)上运行一个testing站点。 我有nodejs,快速安装。 Hello.js const express = require('express') const app = express() app.get('/', function (req, res) { res.send('Hello World!') }) app.listen(3000, function () { console.log('Example app listening on port 3000!') }) 运行节点hello.js 在我的电脑上, http:// xxxx:3000 / =>显示无法到达此站点 xxxx花了很长时间回应。 更新: