my node.js Express代码中的SyntaxError

my node.js Express代码中的SyntaxError,node.js,syntax-error,express,Node.js,Syntax Error,Express,因此,我尝试跟随本教程视频: 因此,我在routes/index.js文件的顶部有以下代码: var todo=require('../todo')//第1行 //第2行 //新会话//第3行 exports.newSession=函数(请求、恢复){//第4行 res.render('sessions/new',{//**第5行** 当地人:{ redir:req.query.redir } }); }; 但是,当我运行我的应用程序并触发routes.newSession处理程序时,我得到

因此,我尝试跟随本教程视频:

因此,我在
routes/index.js
文件的顶部有以下代码:

var todo=require('../todo')//第1行
//第2行
//新会话//第3行
exports.newSession=函数(请求、恢复){//第4行
res.render('sessions/new',{//**第5行**
当地人:{
redir:req.query.redir
}
});
};
但是,当我运行我的应用程序并触发
routes.newSession
处理程序时,我得到以下错误:

500 SyntaxError: Unexpected identifier
at Object.Function (unknown source)
at Object.compile (/home/admin73464/todo/node_modules/jade/lib/jade.js:161:8)
at Function.compile (/home/admin73464/todo/node_modules/express/lib/view.js:65:33)
at ServerResponse._render (/home/admin73464/todo/node_modules/express/lib/view.js:414:18)
at ServerResponse.render (/home/admin73464/todo/node_modules/express/lib/view.js:315:17)
at /home/admin73464/todo/routes/index.js:5:6
at callbacks (/home/admin73464/todo/node_modules/express/lib/router/index.js:272:11)
at param (/home/admin73464/todo/node_modules/express/lib/router/index.js:246:11)
at pass (/home/admin73464/todo/node_modules/express/lib/router/index.js:253:5)
at Router._dispatch (/home/admin73464/todo/node_modules/express/lib/router/index.js:280:4)
我在我的
index.js
文件中没有看到任何语法错误;你…吗?我应该找别的地方吗

提前谢谢

编辑:以下是我的视图/会话/new.jade文件的内容:

h1 Login
form(action='/sessions', method='POST')
  input(type='hidden', name='redir', value=redir)
  p
    label(for='login') Login:
    input(type='text' name='login', id='login')
  p
    label(for='password') Password:
    input(type='password' name='password', id='password')
  p
    input(type='submit')
我很确定我复制了佩德罗写的东西

第二次编辑: 我还使用layout.jade文件。这是:

!!!
html
  head
    title Our ToDo App
    link(rel='stylesheet', href='/stylesheets/style.css')
  body!= body
根据受访者的建议,我尝试删除new.jade中的所有(以及除第一行以外的所有)行。我也犯了同样的错误。 我还尝试从layout.jade中删除所有行,并且只删除最后一行(body!=body)。同样的错误

感谢到目前为止所有的回复,我很高兴你到目前为止给我的帮助和建议

第三次编辑: 我已将我的应用程序文件夹和文件发布在


我使用的目录结构是Express的默认结构,因此应该是不言自明的。

也许你的
会话/new.jade
视图有问题?

也许你的
会话/new.jade
视图有问题?

你能这样更改index.js的内容并告诉我这是否解决了问题:

exports.newSession = function (req, res) {
  var redir = (req.query && req.query.redir) || '';
  res.render('sessions/new', { redir: redir });
};

你能像这样更改index.js的内容并告诉我这是否解决了问题:

exports.newSession = function (req, res) {
  var redir = (req.query && req.query.redir) || '';
  res.render('sessions/new', { redir: redir });
};

new.jade
文件中,您有以下行

input(type='text' name='login', id='login')
input(type='password' name='password', id='password')

类型
名称
属性之间缺少逗号。记住,在Jade中,必须在HTML属性之间加逗号。

新的.Jade文件中,有行

input(type='text' name='login', id='login')
input(type='password' name='password', id='password')

类型
名称
属性之间缺少逗号。记住,在Jade中,您必须在HTML属性之间添加逗号。

请也粘贴Jade文件的内容。您不再需要局部变量:{},只需要内部的key:vals请粘贴Jade文件的内容。您不再需要局部变量:{},只需要内部的key:vals进行更改。除了行号现在是6(仍然是res.render行)之外,出现了相同的语法错误。然后它绝对来自您的jade视图文件。我的建议是删除视图中的所有内容,然后逐行添加并进行测试(因为视图中只有几行,所以这很快也很简单)。我刚刚删除了新的.jade文件中的所有行,并得到了相同的问题。对my layout.jade文件也做了同样的处理(请参见编辑到原始帖子)也许粘贴整个应用程序的代码更好(您可以减少应用程序,以便我们可以复制此问题),将代码文件放在在线的某个位置,例如paste.org是的,这是一个好主意(我以前尝试过将我的应用程序的目录结构复制到它的公用文件夹中,但由于某些原因,没有成功。)请参阅我的第三次编辑。进行了更改。出现了相同的语法错误,但行号现在是6(仍然是res.render行)。然后它绝对来自您的jade视图文件。我的建议是删除视图中的所有内容,然后逐行添加并进行测试(因为您的视图中只有几行,所以它既快速又简单)。我刚刚删除了新的.jade文件中的所有行,并遇到了相同的问题。我对layout.jade文件也做了同样的操作(请参阅编辑到原始帖子)也许最好粘贴整个应用程序的代码(你可以减少应用程序的数量,这样我们就可以复制这个问题),将代码文件放到在线的某个地方,比如pastie.orgYeah,这是一个好主意(我以前尝试过将我的应用程序的目录结构复制到它的公用文件夹中,但由于某些原因没有成功)查看我的第三次编辑。是的,我应该仔细查看我的jade文件。谢谢你的帮助!我想我不习惯查看jade语法,尽管你指出这是一个明显的问题。是的,我应该仔细查看我的jade文件。谢谢你的帮助!我想我不习惯查看jade语法,尽管这是一个明显的问题既然你指出了这个问题,那就有问题了。