Cod*_*del 34 javascript node.js express
我很长时间没有使用Node.js而且从未使用过Express.当我启动我的应用程序时,它刚刚返回:
Error: Cannot find module 'html'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at new View (C:\Users\fr\node_modules\express\lib\view.js:42:49)
at Function.app.render (C:\Users\fr\node_modules\express\lib\application.js:483:12)
at ServerResponse.res.render (C:\Users\fr\node_modules\express\lib\response.js:755:7)
at allClients (C:\Users\fr\node_modules\apps\chat.js:13:7)
at callbacks (C:\Users\fr\node_modules\express\lib\router\index.js:161:37)
at param (C:\Users\fr\node_modules\express\lib\router\index.js:135:11)
Run Code Online (Sandbox Code Playgroud)
我启动test.html时发生错误.这是代码:
var io = require('socket.io');
var express = require('express');
var app = express(),
http = require('http'),
server = http.createServer(app),
socket = require('socket.io').listen(server);
app.configure(function(){
app.use(express.static(__dirname));
});
app.get('/', function(req, res, next){
res.render('./test.html');
});
server.listen(8333);
Run Code Online (Sandbox Code Playgroud)
我自己的路 :
node_modules/
express/
socket.io/
apps/
chat.js
test.html
Run Code Online (Sandbox Code Playgroud)
为什么?
编辑:
这是我的新app.configure:
app.configure(function(){
app.use(express.static(path.join(__dirname, 'public')));
});
Run Code Online (Sandbox Code Playgroud)
但它返回:
path is not defined
Run Code Online (Sandbox Code Playgroud)
Aks*_*rma 53
我假设test.html是一个静态文件.渲染静态文件使用像这样的静态中间件.
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)
这告诉express要在应用程序的公共目录中查找静态文件.
指定完毕后,只需将浏览器指向文件的位置即可显示.
如果你想要渲染视图,那么你必须为它使用适当的渲染器.渲染列表在合并中定义.一旦你决定使用哪个库就安装它.我使用胡子,所以这里是我的一个片段配置文件
var engines = require('consolidate');
app.set('views', __dirname + '/views');
app.engine('html', engines.mustache);
app.set('view engine', 'html');
Run Code Online (Sandbox Code Playgroud)
这样做是告诉表达的
查找要在views目录中呈现的文件
使用小胡子渲染文件
该文件的扩展名为.html(你也可以使用.mustache)
eag*_*gor 22
简单的方法是使用EJS模板引擎来提供.html文件.将此行放在视图引擎设置旁边:
app.engine('html', require('ejs').renderFile);
Run Code Online (Sandbox Code Playgroud)
小智 9
如果不是,请安装 ejs。
npm install ejs
Run Code Online (Sandbox Code Playgroud)
然后在您的主文件中粘贴以下两行之后。(如 app.js、main.js)
app.set('view engine', 'html');
app.engine('html', require('ejs').renderFile);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
85900 次 |
最近记录: |