Tag: 表示

节点JS同步数据库调用

我很新的Java脚本和nodejs。 我想写一个代码,检查数据库中是否已经存在一个电子邮件,如果不发送错误。 问题是在数据库函数结束之前,我的代码进入下一行,导致未定义的variables(emailExists) 这是我注册的代码: app.post('/signUpWeb', function (req, res) { var reqBody = req.body; var email= reqBody.email; var password= reqBody.password; var fullName= reqBody.fullName; var webDbInsertion = {email: email, password: password, fullName: fullName}; var emailExists= DButils.checkIfPKexists(connection, "webusersMail", "email", webDbInsertion.email); if(emailExists == false){ DButils.insertInfoToDB(connection, "webusersMail" ,webDbInsertion); console.log("successfull signup"); res.send("successfull signup"); }else{ console.log("signup failed, email: " + email + […]

如何用express和EJS正确“包含”一个使用node.js的EJS文件

我开始学习node.js,并且已经安装了express,并且正在使用Express来使用EJS。 我有以下代码(主要由快速生成器生成): app.js var express = require('express'); var path = require('path'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); index.ejs <!DOCTYPE html> […]

Node.js,Express和Mongoose服务几个静态文件

使用Node.js,Express和Mongoose,我使用下面的代码(可以正常工作)在多个子目录中同时提供多个静态文件: fs.readdirSync(__dirname + "/../../../np-site/themes/default/client/") .forEach(function (dir) { app.use(express.static(__dirname + "/../../../np-site/themes/default/client/" + dir) ); }); 但是,根据数据库条目值,部分url必须是dynamic的: express.static(__dirname + "/../../../np-site/themes/" + theme + "/client/" + dir) 我尝试了几种不同的方式,无济于事。 以下是我所做的第一次尝试,这对我来说最有意义(App模型是一个只能更新和检索的单个对象): App.find(function (err, appSettings) { fs.readdirSync(__dirname + "/../../../np-site/themes/" + appSettings[0].theme + "/client/").forEach(function (dir) { app.use(express.static(__dirname + "/../../../np-site/themes/" + appSettings[0].theme + "/client/" + dir) ); }); }); 然而,这不起作用,并且没有静态文件作为结果。 我需要访问的对象是可用的(通过console.log发现),但有些不对。 浏览器控制台确实返回一个不经常出现的错误消息,说明文件(CSS)的MIMEtypes不正确,但我相信这是因为应用程序无法find正确的目录(删除方法完全具有相同的结果)。 我在想,它与一个Mongoose方法中的app.use有关,但我不确定。 […]

使用Express.Router()快速路由特定的中间件

我使用express路由器来定义我的路由,我需要添加一个中间件,所以有些路由,只是在callback函数之前添加中间件输出以下错误: Error: Route.post() requires callback functions but got a [object Object] 我正在使用文件夹作为模块,我的模块上传,这里是index.js : module.exports = (function () { var express = require( 'express' ), router = express.Router(), multer = require( 'multer' ), transaction_docs = multer( { dest: './client/public/docs/transactions/' } ), product_images = multer( { dest: './client/public/img/products' } ), upload = require( './upload' ); router.route( '/upload/transaction-docs' […]

使用express / multer时更改文件名

我上传PDF时遇到了麻烦,当我上传(我使用ng-file-upload )的文件json达到express.js是: { fieldname: 'file', originalname: 'db.pdf', encoding: '7bit', mimetype: 'application/pdf', destination: './client/public/docs/transactions/', filename: '8a3fe7cb7369d9cffa8e17b162ec3d6b', path: 'client\\public\\docs\\transactions\\8a3fe7cb7369d9cffa8e17b162ec3d6b', size: 9179145 } 我想将名称更改为从angular度发送的属性,以下是所有设置: html元素: <div ngf-select="vm.uploadPdf($file, $errFiles)" ngf-pattern="'.pdf'" accept="application/pdf" ngf-max-size="20MB">Select … </div> angular func uploadPdf (ctrl为vm): function uploadPdf( file, errFiles ) { vm.pdf = file; vm.errorFile = errFiles && errFiles[ 0 ]; if ( vm.pdf ) { […]

node.js不能GET /socket.io

我有以下应用程序与express / socket.io(该应用程序正在侦听,并没有任何错误生活)。 当我http请求它时,我得到以下错误: GET http://xxxxxxx.com:3035/socket.io/1/?t=1449090610579 400 (Bad Request) 并在http://xxxxxxx.com:3035/socket.io socket.io响应我得到: Cannot GET /socket.io app.js: var express = require('express'), http = require('http'), sio= require('socket.io'), fs=require('fs'), app = express(); var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'xxxxxxx', password: 'xxxxxxx', database: 'xxxxxxxxx' } ); connection.connect(); // Start the server var server=app.listen(3035, function () […]

在JavaScript中的ValueOf()

从我的database.js我导出我的三种用户types的mongoose模型: module.exports = { root: rootCol, advisor: advisorCol, student: studentCol, }; 在我的api.js ,我从req.body.type得到usertype,它将是( root , advisor或者student ) 当我尝试: var models = require('../database.js'); models.req.body.type.valueOf().findOne({ …. 它说的东西没有findOne方法。 我试图访问models.root或models.advisor而不必使用if语句。 有什么办法可以做到这一点?

在nodejs中的res.end()之后redirect

我正在使用jsonwebtoken来validation用户。 我的计划是将标记保存在标题处,然后在发出任何请求之前获取标题值。 是的,我确实保存在login头成功的值,但它应该redirect到其他页面像任何其他应用程序做的。 我尝试redirect或呈现其他页面,并得到错误 发送后无法设置标题。 apiRoutes.post('/authenticate', function(req, res) { User.findOne({ name: req.body.name }, function(err, user) { if (err) throw err; if (!user) { res.json({ success: false, message: 'Authentication failed. User not found.' }); } else if (user) { if (user.password != req.body.password) { res.json({ success: false, message: 'Authentication failed. Wrong password.' }); } else { […]

Nodejs / Expressjs无法链接到css文件

我正在尝试节点/expressionjs并创build了一个小的web项目。 我有root / views目录中的意见 所以: root /views /css 我已经添加到/views/index.html文件: <link rel="stylesheet" type="text/css" href="css/style.css" /> 这是我的server.js文件代码: var express = require("express"); var app = express(); var router = express.Router(); var path = __dirname + '/views/'; var path = __dirname + '/css/'; //Not working router.use(function (req,res,next) { console.log("/" + req.method); next(); }); router.get("/",function(req,res){ res.sendFile(path + "index.html"); }); router.get("/about",function(req,res){ […]

如何从Node.js express服务器返回JSON数据到Riot.js?

我正在开发一个Web应用程序,在客户端使用Riot.js,在服务器端使用Node.js。 Riot.js可以挂载JSON数据并可以用于呈现HTML。 其实我有服务器端的一些JSON数据,并希望与Riot.js使用它们。 目前我的快递服务器的代码很简单。 var express = require('express'), serveIndex = require('serve-index'), app = express(); app.use(express.static(__dirname + '/public')); app.use(serveIndex(__dirname + '/public')); app.listen(3000); 我认为HTML模板对我的问题很有帮助。 但是我找不到Riot.js的答案,我如何使用和渲染来自服务器的数据? Node&Express – 如何在单个请求中向浏览器发送页面和一些JS数据? 我知道我是如何装载数据,如果数据在客户端这样的: <script> riot.mount('my_hoge', { data: [ { name: 'A', url: 'xxxx'}, { name: 'B', url: 'yyy', isActive: true}, { name: 'C', url: 'zzzz'} ] }) </script> 环境 Node.js v5.3.0 […]