我正在尝试使用<script>
标记加载javascript。
我正在使用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。谢谢你的帮助!
为什么我介绍了这个bug的想法:
该错误是因为我厌倦了使用requireJS引起的,所以我将路径从那里(最后省略了.js)复制到脚本标签(需要它们)。我甚至已经确定“复制代码而不是从头开始编写代码”作为我的常见错误来源。我想我需要实际将其作为一个检查列表来实现(有一本关于检查表的好书,这些检查表用于“bug”造成人们生活费用的领域,称为“清单宣言”)。
(另外,我应该提一下,当我使用cookiestore()时,我的套接字不起作用。)
答案 0 :(得分:0)
您可以尝试在应用中指定以下内容:
app.use(express.cookieParser());
app.use(express.session({secret: 'secret', key: 'express.sid'}))
根据您共享的内容,您似乎没有为会话配置express。