0

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です。

サーバー.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 = (app) ->

  app.get '/login', (req, res) ->
    res.render "#{__dirname}/views/login",
      title: 'Login'
      stylesheet: 'login'

module.exports = routes

パッケージ.json

{
  "name": "application-name",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.1.0",
    "jade": "*",
    "coffee-script": "~1.6.1"
  }
}
4

2 に答える 2

1

login.jadeファイルに問題がありました。エンコーディングの問題かもしれません。newLogin.jadeファイルを作成し、render機能を変更したところ、すべて正常に動作しました。githubのプル リクエストを参照してください。

于 2013-03-13T19:14:25.980 に答える
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'));

それ以外の場合は、ディレクトリ/ファイルの場所を確認してください。

于 2013-03-13T05:41:41.093 に答える