Tag: 表示

TypeError:尝试在Express JS中使用Mustache时,this.engine不是函数

作为我在NodeJS上尝试的第一件事,我构build了一个简单的应用程序,显示一个HTML页面,告诉访问者他们的IP地址。 这是它的样子 var express = require('express'); var app = express(); app.set('view engine', 'mu2'); app.get('/', function (req, res) { res.setHeader('Content-Type', 'text/html'); // Do I have to do this? I'm not sure. res.render('frontPage.html', { ip: req.ip }); res.send(); }); app.listen(8080, function() { console.log("Listening on port 8080"); }); 以下是/views/frontPage.html样子: <!DOCTYPE html> <html> <head> <title>Hello, World!</title> </head> <body> <h1>Hello, […]

NodeJS和ExpressJS中的多用户密码重置并发问题

无法为多个用户重置密码。 当多个用户尝试重置密码时,我卡住了 我如何捕获发送给电子邮件中特定用户的确切重置令牌链接? 比方说,当两个用户试图重置密码, resetQueryParameter将被覆盖。 我该如何处理? 当用户点击电子邮件中的重置链接时,从查询参数中获取令牌: // global variable var resetQueryParameters = ''; //CAPTURE TOKEN (QUERY PARAMS) FROM LINK app.get('/resetQuery/', function (req, res) { //SET THE TOKEN TO VARIABLE resetQueryParameters = req.query.token; r.db('myDB').table('Reset_Password').filter(r.row('auth_key').eq(req.query.token)). run(myConnection, function (err, cursor) { if (err) { return next(err); } cursor.toArray(function (err, result) { if (err) { throw err; } […]

如何让代码每15分钟连续执行一次?

嘿家伙我在节点+运行一个networking服务器快递,由于某种原因,我的代码不是每10分钟执行,即使我清楚地有setInterval函数设置那里。 这只是我在我的脚本文件(名为serverScripts.js)中设置的4个代码之一,紧挨着app.js,我用两个节点serverScripts.js运行它,并使用永久模块,但它仍然不起作用 var APOD = (function() { setInterval(function() { async.waterfall([ function Request(callback) { let apodUrl = 'https://api.nasa.gov/planetary/apod?api_key='; let api_key = '*censored*'; request(apodUrl+api_key, function(err, apodData) { if (err) throw err; apodData = JSON.parse(apodData.body); callback(null, apodData); }); }, function GetTableItems(apodData, callback) { let apodParams = { TableName: "APOD" } db.scan(apodParams, (err,apodTable) => { if (err) throw err; […]

如何确定如何导入模块

现在我正在将模块导入到节点项目中 导入*作为“moduleName”的名称; 我没有这样做 var name = require(“moduleName”); 就像我们以前在节点项目中一样 我的问题是在编写一个模块时,我们在使用require或import导入时有区别,只是我们以不同的方式导入的内部模块相同,或者导入时导致我们使用require或import 请求和导入(es6)有什么区别? 谢谢!

当第一个不匹配路线时,又回到另一个快速应用程序

TL / DR:有没有办法将两个应用程序结合使用,如果第一个应用程序没有实现路线,可以使用第二个应用程序? 我们目前有两个快速应用程序,一个新的考虑良好的应用程序和一个旧的,弃用的应用程序。 outlook未来,我们的团队将逐渐将旧应用程序中的所有内容迁移到新应用程序中。 我正在寻找一种方法来结合这两个应用程序,以便他们都可以被调用。 我意识到我可以使用app.use来做这样的事情,但是这需要应用程序位于不同的子域中,或使用单独的基本path。 我的目标是保持路由不变,所以调用API的人不知道引擎盖下发生的变化。 例如,如果我能做到这样的话,那将是一件好事: const express = require('express'); let oldApp = express(); let newApp = express(); oldApp.get('/old', function (req, res) { res.send("OLD"); }); newApp.get('/new', function (req, res) { res.send("NEW"); }); express().use(oldApp, newAPp).listen(3000); 然后,我可以调用localhost:3000/old或localhost:3000/new ,两个端点都可以工作。

如何在布局的快速句柄中使用侧边栏和主要内容

我有一个快速的手柄应用程序与main.hbs作为布局文件。 //main.hbs <html> <head></head> <body> {{> header}} {{{body}}} <script src='/js/jquery-2.2.4.min.js'></script> <script src='/js/bootstrap.min.js'></script> </body> </html> 当我点击一个链接让我们说仪表板页面中的“设置”,然后它redirect到设置页面,我有侧边栏和主要内容页面。 此页面也使用main.hbs作为布局。 //settings.hbs <div class="container-fluid"> <div class="row"> <div class="col-sm-3 col-md-2 sidebar"> <ul class="nav nav-sidebar"> <li class="active"><a href="/settings/account">Account<span class="sr-only">(current)</span></a></li> <li><a href="/settings/view">Views</a></li> <li><a href="#">Users</a></li> <li><a href="#">Sites</a></li> </ul> </div> <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"> <ol class="breadcrumb"> <li class="active">Settings</li> </ol> <div id="settingsContainer"> //Content should […]

express.js应用程序在一段时间后崩溃了

这是一个超级简单的快速应用程序。 经过一段时间没有要求,只是坐着闲置这个错误将发生: Example app listening on port 80! events.js:160 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at exports._errnoException (util.js:1022:11) at TCP.onread (net.js:572:26) 这里供参考是代码 "use strict" var express = require('express'); var app = express(); app.get('/', function(req, res) { res.end('hello') }) app.listen(80, function () { console.log('Example app listening on port 80!') })

请求正文有价值,但我无法访问它

我目前正在从angular2前端进行一些用户注册来expression后端。 除了从请求主体获取值之外,一切工作都很好。 看看这个。 usersRoute.js userRouter.route('/signup') .post(function(req, res){ console.log(req.body); mongoose.connect(url, function(err){ var user = { username: req.body.username, password: req.body.password, firstname: req.body.firstname, lastname: req.body.lastname, gender: req.body.gender, address: req.body.address, contact: req.body.contact, email: req.body.email }; console.log(user); users.create(user, function(err, results){ // res.redirect('http://localhost:4200/login'); //tobeChanged console.log(results); mongoose.disconnect(); }); }); }); 在第一个console.log我试图看看req.body是否有一个值,然后在第二个console.log是当我想看看用户variables是否有一些价值。 这是发生了什么事。 正如我们所看到的, 用户variables没有价值,但我通过req.body访问它。 名称 。 有人可以帮我澄清一下吗? 可选问题:那些\ n打扰我。 如何摆脱它?

Grunt Node和Express Local Dev HTTPS证书

我试图在服务人员开始,并阅读你需要有一个SSL证书。 我有一个AngularJS 1.x应用程序和一个Node Express后端,我独立运行,所以我使用grunt serve来运行端口8443的前端,我使用node app.js来运行7443上的express。 注意:我在macOS上这样做 我使用了关于如何在使用Grunt的项目上设置https的指南: 这里 openssl genrsa -out livereload.key 1024 openssl req -new -key livereload.key -out livereload.csr openssl x509 -req -in livereload.csr -signkey livereload.key -out livereload.crt Gruntfile.js options: { protocol: 'https', // or 'http2' port: 8443, hostname: '0.0.0.0', key: grunt.file.read('livereload.key'), cert: grunt.file.read('livereload.crt') }, 节点app.js var privateKey = fs.readFileSync('../livereload.key', 'utf8'); var certificate […]

如果有人通过节点js应用程序中的multer将扩展名从exe更改为png,则不应允许文件上载

我正在使用multer在我的nodejs(快速js)应用程序工作正常上传文件。 我已经把一个MIMEtypes检查那里也允许只有PNG文件,但如果我把上传的文件的abc.exe从abc.exe更改为abc.png它也得到上传这是错误的。 这是我的代码。 var multer = require('multer'); var imagefolder = __base + 'public/complaintimages/'; var diskstorage = multer.diskStorage({ destination: function (req, file, cb) { if (common.ImageMimeTypes.indexOf(file.mimetype) < 0) { common.ActionOutput.Status = common.ActionStatus.WrongFileUploaded; common.ActionOutput.Message = 'Invalid image file: ' + file.originalname; cb(new Error('FileUpload:' + common.ActionStatus.WrongFileUploaded), null); } else cb(null, imagefolder); }, filename: function (req, file, cb) { […]