我正在尝试使用<script>
标记加载JavaScript。尝试使用快速加载脚本时发生500错误
我使用this question的代码,但我认为他得到了400错误,而我得到了500错误。
我的一些快递代码:
app.configure(function() {
app.use(express.bodyParser()); //not sure...
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));
});
app.set('view options', {
layout: false
});
摘录我Index.ejs文件:
<!DOCTYPE html>
<html>
<head>
<style src="./list.css"></style>
<LINK href="blockStyle.css" title="compact" rel="stylesheet" type="text/css">
<script src="/public/js/libs/jquery/jquery-2.0.3"></script>
<script src="socket.io/socket.io.js"></script>
<script src="/public/js/app.js"></script>
下面是一些来自终端的输出:
GET /public/js/libs/jquery/jquery-2.0.3 500 9ms
TypeError: Cannot read property 'connect.sid' of undefined
at Object.session [as handle] (/Users/humble_student/Desktop/ndent/node_modules/express/node_modules/connect/lib/middleware/session.js:239:32)
at next (/Users/humble_student/Desktop/ndent/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at resume (/Users/humble_student/Desktop/ndent/node_modules/express/node_modules/connect/lib/middleware/static.js:65:7)
at SendStream.error (/Users/humble_student/Desktop/ndent/node_modules/express/node_modules/connect/lib/middleware/static.js:80:37)
at SendStream.EventEmitter.emit (events.js:126:20)
at SendStream.error (/Users/humble_student/Desktop/ndent/node_modules/express/node_modules/send/lib/send.js:147:51)
at SendStream.onStatError (/Users/humble_student/Desktop/ndent/node_modules/express/node_modules/send/lib/send.js:248:48)
at SendStream.pipe (/Users/humble_student/Desktop/ndent/node_modules/express/node_modules/send/lib/send.js:320:26)
at Object.oncomplete (fs.js:297:15)
谢谢非常!让我知道是否有任何事情可以澄清我的问题。
编辑: 我试着设置会话,但我不确定自己是否正确地进行了操作(我是盲目复制教程中的代码)。
我:
和helperLib我:
var MemoryStore = express.session.MemoryStore
var sessionStore = new MemoryStore();
var getSessionstore = function(){ return sessionStore; }
EDIT2: 问题是,我在我的所有脚本的末尾缺少一个.js。谢谢你的帮助!
思考为什么我介绍了一个错误:
的错误是造成的,因为我厌倦了使用requireJS的,所以我复制从那里进入脚本标记的路径(这在端忽略的.js)(其要求他们)。我甚至确定了“复制代码而不是从头开始编写代码”,作为我的一个常见错误来源。我想我需要真正实现这个作为一个检查清单来遵循(有一本关于检查表被使用在“臭虫”使人们的生命被称为“检查表宣言”的领域中的好书。
(另外,我要指出,当我用的CookieStore()的东西,我的插座没有工作。)
您的公开目录是为了快速知道文件的位置,因此请勿在模板中包含“/ public”。 IIRC,快递首先检查您提供给公众的所有请求。另外,你是否尝试使用会话?你是否设置了快速使用它们? – Chris
这就是我最初想到的会议,但我在帖子中提到的问题说要使用它们。 (我尝试了两种方式)。 – curtissv
我很确定会话不会导致这种情况,因为当您尝试获取'jquery-2.0.3'时发生错误。那最后还应该有一个.js吗?另外,请不要在index.ejs文件中包含“/ public”。 应该是我相信。 – Chris