Tag: 表示

Node.js服务HTML页面和静态内容

var express = require("express"); var app = express(); var path = require("path"); app.use(express.static(__dirname + '/view')); app.get('/dashboard',function(req,res){ res.sendFile((path.join(__dirname + '/dashboard.html')); }); app.get('/index1',function(req,res){ res.sendFile((path.join(__dirname+'/index.html')); }); app.get('/',function(req,res){ res.redirect('/login'); }); app.get('/login',function(req,res){ res.redirect((path.join(__dirname + '/login')); }); app.listen(3000); console.log("Running at Port 3000"); 我的问题是为什么我需要检查每次用户请求? 另外,如果我有我的目录中的100个HTML文件,我需要通过get方法检查每个文件,然后通过res.sendFile返回页面?

req.session是使用快速会话未定义的

我刚刚开始学习如何使用Cookie和快递,我希望得到这个工作的一些帮助。 我试图按照GitHub上的expressjs / session教程,但是我得到的req.session undefined ,所以我无法设置或获取任何值。 我的目标是将用户的名字和姓氏保存到cookie中,以便input字段将自动填充。 我不确定是否需要使用cookie-parser ,或者如果express-session可以单独处理。 我不确定如何继续,因为我是新的cookies和快速会话。 所有帮助表示赞赏! 提前致谢。 码 let express = require('express'); let app = express(); let credentials = require('../modules/credentials.js'); let session = require('express-session'); let sessionOptions = { secret: credentials.cookieSecret, cookie: { maxAge:269999999999 }, saveUninitialized: true, resave:true }; if (app.get('env') === 'production') { app.set('trust proxy', 1); sessionOptions.cookie.secure = true; } […]

TypeError:app.get不是一个函数

我试图在原型中使用快递 function ioServer() { } module.exports = ioServer; ioServer.prototype.start = function() { var app = require('express') var http = require('http').Server(app) var io = require('socket.io')(http) app.get('/', function(req, res) { var outPut = "" res.sendFile(__dirname + './client/index.html') }) http.listen(3000, function(port) { console.log('Listening on port, ' + 3000) }) } 但是,当我使用它引发错误TypeError: app.get is not a function当我删除它的原型部分的作品。

NodeJS捕获错误的最佳实践

我刚开始有NodeJS和Express。 来自其他stream行的脚本语言和C ++背景,asynchronous调用数据库函数有点异。 我已经整理出了一个模式,但是我仍然对捕捉exception感到好奇。 以下是我的基本模式。 var callback = function(req, res) { // do stuff connection.query(queryString, function(err,result){ if (err) throw err; // process results. }; }; var express = require('express'); var app = express(); app.get('/', callback); app.listen(3000,function() { console.log('listening'); }; 通常我有很多的端点和callback。 我有点迷路了,我设置了try / catch块来捕获callback中抛出的错误。 我已经四处寻找一些build议,但是它们中的很多似乎都在使用web框架(如果有的话)。

在谷歌api.ai行动不发送身体在POST请求与nodejs和expression

我试图在我的电脑上运行api.ai中的 action-on-google和sillyNameMaker例子。 我用express和一个ngrok隧道build立了一个nodejs服务器。 当我尝试向api.ai上的我的代理发送请求时,我的服务器收到POST请求,但主体看起来是空的。 有什么我没有正确设置? 这是我的index.js文件: 'use strict'; var express = require('express') var app = express() const ApiAiAssistant = require('actions-on-google').ApiAiAssistant; function sillyNameMaker(req, res) { const assistant = new ApiAiAssistant({request: req, response: res}); // Create functions to handle requests here const WELCOME_INTENT = 'input.welcome'; // the action name from the API.AI intent const NUMBER_INTENT = 'input.number'; […]

Cradle / Express / EJS将html转换为实体

我在我的博客上使用Express和EJS的Cradle。 也许我错过了smth,但其中一些将html实体转换为其等价物。 我有doc.quote字段中的HTML,并在这段代码后,它改变 quotesDb.view('list/by_date', { 'startkey' : {}, 'endkey' : null, 'descending' : true }, function(err, res) { if (err) { r.send(); return; } r.partial('quotes', {'quotes' : res}, function(err, str) { console.log(str); sendResponse('content', str); }); }); quotes.ejs: <% for (var i=0; i<quotes.length; i++) { %> <div> <%=quotes[i].value.quote%> </div> <div class="date"> <%=(new Date(quotes[i].value.ts*1000)).toLocaleDateString()%><% if (quotes[i].value.author) { […]

改变express + node.js + ejs的代码包装types

在客户端ejs中,我使用[% code %]代替<% code %>来标记ejs代码,但是我想在express服务器端执行相同的操作。 在客户端,我会做类似var template = new EJS({text: template_src, type:'['}); 这是我的节点代码: app.set('view engine', 'ejs'); app.register('.html', require('ejs')); app.get('/', function(req, res){ res.render('index.html', { title: 'My Site' }); }); 你在哪里设置“types”参数,所以我可以改变这个选项

为什么express.js生成一个JSON.parse错误?

我安装了node.js和express.js,我试图使用: var str = { test: 'info'}; obj = JSON.parse(str); 但它会导致一个错误: SyntaxError:Object.parse上的意外的标记0(本地) 我怎样才能解决这个问题? 谢谢。

mongoose不提供查找function的错误

在试图用Mongoose构造一些静态方法时,调用find()或findOne()时似乎无法访问错误参数。 这是我的静态: User.statics.authenticate = function(login, password, cb){ return this.model('User').findOne({ username: login, password: password }, function(err, user){ console.log("error", err); console.log("user", user); }).exec(cb); }; 我试图用这样的东西来调用它: exports.session = function(req, res){ return User.authenticate(req.body.login, req.body.password, function(err, doc){ console.log('err', err); console.log('doc', doc); }); }; 在任何情况下,不pipefindOne查询的结果如何,err都是空的。 任何想法在这里发生了什么? 也许我不能把所有这些callback包裹起来…

Express中绝对和相对path的困难

我在Express应用程序中有一个API的路线,如下所示: app.get('/:username/:bookmark/', function(req, res) { // do stuff }) 正如所料,这条路线解决了: GET /username/bookmark/ 不过,我想为我的静态资源使用相对的URL。 例如,我想要到我的main.css的path来解决: GET /css/main.css 相反,它现在解决了: GET /username/bookmark/css/main.css 如何让我的应用程序将静态内容parsing为/css/main.css并从URL中删除API的主要组件?