我正在关注node.js上的peepcode(第1部分)视频教程,我在前几步中遇到困难。当我尝试转到http://localhost:3000/login
时,出现以下错误:
500错误:无法查找视图" / Users / dantang / Desktop / Programming / Node / basic server / hotpie / apps / authentication / views / login"
我猜这是由于一个错字,但我已经尝试过多次更改代码,但我无法弄清楚出了什么问题。如果有人能告诉我该怎么办,真的很感激吗?谢谢!
github回购是https://github.com/tangbj/nodejs
Server.js
/**
* Module dependencies.
*/
require("coffee-script");
var express = require('express')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
//Routes
require('./apps/authentication/routes')(app);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
login.jade
form(action='/sessions', method='post')
label
| Username
input(type='text', name='user')
label
| Password
input(type='password', name='password')
input(type='submit', name='Submit')
routes.coffee
routes = (app) ->
app.get '/login', (req, res) ->
res.render "#{__dirname}/views/login",
title: 'Login'
stylesheet: 'login'
module.exports = routes
的package.json
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.1.0",
"jade": "*",
"coffee-script": "~1.6.1"
}
}
答案 0 :(得分:1)
您的login.jade
文件出现了问题。也许有些编码问题。我创建了一个newLogin.jade
文件,更改了render
函数,一切正常。请参阅github处的拉取请求。
答案 1 :(得分:0)
如果你使用的是需要反斜杠而不是linux中的正斜杠的Windows,它将无法找到路径。因此,请使用path.join
或path.normalize
来获取正确的路径。
尝试在routes.coffee
res.render "#{__dirname}/views/login",
到
res.render path.join(__dirname, "/views/login"),
和
app.set('views', __dirname + '/views');
到
app.set('views', path.join(__dirname + '../views'));
否则验证目录/文件的位置。