Articles of 表示

通过单个呼叫更改多个文档中的字段

我有一个使用mongo的节点/快速应用程序。 我有一个名为“paymentMethods”的集合,用于存储包含以下内容的文档: { owner_id, name_on_card, card_number_last_4, isActive } 一个所有者可以在这个集合中有多张卡片。 当我添加一张新卡片时,我会使“isActive”成为如下所示: router.route('/') .post(function( req, res ){ PaymentMethod.findAndUpdate({owner_id:req.body.ownerId}) var paymentMethod = new PaymentMethod(); paymentMethod.owner_id = req.body.ownerId; paymentMethod.card_number = req.body.cardNumber; paymentMethod.name_on_card = req.body.nameOnCard; paymentMethod.exp_date = req.body.expDate; paymentMethod.cvv = req.body.cvv; paymentMethod.zipcode = req.body.zipCode; paymentMethod.active = true; console.log('Payment information passed: ', paymentMethod); paymentMethod.save(function(err, paymentMethod){ if(err) res.send(err); res.json(paymentMethod); }) }); 我想弄清楚的是,我可以在同一个调用中更新所有其他匹配logging,并将它们的“isActive”字段设置为null或false。 […]

http / 2推送JavaScript不加载

当请求进来时,我使用spdy nodejs库来压下我的javascript包。 spdy .createServer(options, (req, res) => { // TODO – figure out why the javascript doesnt load on the client if (res.push) { console.log("Pushing…"); // push vendor bundle const bundleStream = res.push(`/js/client.js`, { status: 200, method: "GET", request: { accept: "*/*" }, response: { "content-type": "application/javascript" }, }); bundleStream.on("error", (e: any) => console.error(e)); bundleStream.end(); […]

如何从一个控制器访问同一个职位?

我是全栈networking开发的新手。 现在我遇到了一个问题。 我使用的是mongodb,mongoose,node和express。 我有两个控制器,一个是注册,另一个是configuration文件。 代码注册将是这样的 router.post('/',(req,res,next)=>{ let user = new userProfile(); user.email = req.body.email; user.name = req.body.firstName; user.save((err)=>{ if(err){ return err; } }) res.redirect('/profile'); }); 点击提交后,我可以在集合中find用户条目。 现在我在configuration文件控制器。 configuration文件的代码: router.get('/',(req,res)=>{ console.log(req.body.email); userProfile.find({email: 'yyyy'},(err,user)=>{ if(err) return err; }) res.render('profile/profile'); }) 当我做的console.log,它输出未定义。 预期的输出应该是注册页面的电子邮件地址,这样当我findfunction的时候,我将会得到正确的具有相同电子邮件地址的条目,并在网页上显示相应的用户名。 我的问题是configuration文件控制器如何从注册控制器访问相同的post信息。

快递应用程序:webpack bundle.js不提供

我是使用express开发应用程序的新手,我正在使用Node-Express-Angular4和Postgres创build应用程序。 我正在使用webpack来构build应用程序,并将其部署到heroku。 以下是我的app.js文件 app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var appRoutes = require('./routes/app'); var eventRoutes = require('./routes/events'); var userRoutes = require('./routes/user'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'hbs'); app.use(favicon(path.join(__dirname, […]

如何与多个虚拟主机共享相同的nodejs端口(3000)(也是nodejs应用程序)

与节点服务器上的多个域应用程序的vhost相关,我现在面临的问题是无法调用vhost doamin的app.js,我的设置如下所示: root folder : website vhost folder: website/vietvan vhost folder: website/thanksme 根wbesite上的根app.js如下所示: var vhost = require('vhost'); // Module dependencies. var application_root = __dirname, express = require( 'express' ), vhost = require( 'vhost' ); function createVirtualHost(domainName, dirPath) { return vhost(domainName, express.static( dirPath )); } //Create server var app = express(); //Create the virtual hosts var […]

React + Express + Nodemailer:无法将组件和Nodemailer渲染在一起

我想使用客户端路由来呈现我的React应用程序,并且想要使用Nodemailer发送邮件。 由于Nodemailer不能在客户端使用,我必须在Express服务器上实现此function。 这就是服务器的样子: express.js router.use(express.static(path.resolve(__dirname, '..', 'build'))) router.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, '..', 'build/index.html')) }) router.get('/sendmail', (req, res) => { transporter.sendMail(options, (error, info) => { if (error){ console.log(error) } console.log('Message was send!') }) }) 1)所以这呈现了React组件,但是当我路由到'/ sendmail'时显示一个空白页面,index.html被渲染为没有js,并且没有邮件被发送。 2)如果我删除第一行router.use(express.static…并路由到'/ sendmail'邮件被发送,但我的应用程序不会呈现。 另外我已经尝试了以下内容: router.use(express.static(path.resolve(__dirname, '..', 'build'))) router.get('*', (req, res) => { console.log('path', req.path) if (req.path === '/sendmail') { […]

无法使用邮递员从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 […]

从Node和Express后端将file upload到S3

我正在关注如何将图像file upload到S3存储桶的教程 。 但是,在指定的S3存储桶中不会显示文件。 如教程中所述,我发送一个“putobject”请求来获取“签名url”作为响应。 s3bucket.getSignedUrl('putObject', s3_params, function(err, data){ // Error… else{ var return_data = { requestUrl: data }; res.json( generalResponse( return_data )); } 然后,我将return_datavariables传递给XMLHttpRequest的一个实例来发出put请求。 xhr.open("PUT", signed_request); Express和S3中的CORSconfiguration如下所示: performance: app.use(function(req, res, next){ res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); next(); }); S3桶: <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Authorization</AllowedHeader> </CORSRule> </CORSConfiguration> 没有语法错误或服务器错误出现在nodemanshell或控制台。 我在想,必须有一些configuration问题,阻止文件从客户端上传到S3。 […]

使用swaggerExpress,Multerfile upload不起作用

我正尝试使用Mulder上传多部分表单数据。 我正在使用swagger express中间件来处理我的API。 没有招摇的一切工作。 但是随着招摇,文件没有上传。 没有validation错误,但它不会上传文件。 以下是您可能想要查看的一些代码: app.js SwaggerExpress.create(config, function(err, swaggerExpress) { if (err) { throw err; } swaggerExpress.register(app); var port = 8850; https.createServer(options, app).listen(port, function () { console.log('Bus993 server started @ %s!', port); }); }); 上传function function uploadImage(req, res, multer){ console.log("here", req.files); //ABOVE SHOWS A VALID FILE var storage = multer.diskStorage({ destination: function (req, […]

mongoose – 铸造ObjectId失败

我正在一个小型的博客应用程序,我在这里被困在这个错误 – { "message": "Cast to ObjectId failed for value \" 597c4ce202ca9c353fc80e8a\" at path \"_id\" for model \"Blog\"", "name": "CastError", "stringValue": "\" 597c4ce202ca9c353fc80e8a\"", "kind": "ObjectId", "value": " 597c4ce202ca9c353fc80e8a", "path": "_id" } 我正在使用findById – 这是代码 app.get("/blogs/:id", function(req, res) { Blog.findById(req.params.id, function(err, foundBlog) { if (err) { res.send(err); } else { res.render("show", { blog: foundBlog }); } […]