index.jade没有出现在本地主机上

我一直在关注使用node.js,express和jade构buildWeb应用程序和数据库的教程。
https://cozy.io/en/hack/getting-started/first-app.html
尽pipe布置一切都一样,我的index.jade不加载本地主机上。 浏览器terminal上没有错误提示。 我已经检查了我的环境variables已经设置好了,我已经把文件path改成了index.jade,但是没有任何区别,只是一个白屏。 在我的命令提示符下,服务器正在侦听,数据库已连接。

My environment folder is C:\foodshop and within this I have node_modules, index.jade, package.json, shopDB.db, simpleserver.js 

simpleserver.js包含以下内容 –

 // This is the server. var http = require('http'), express = require('express'), app = express(), sqlite3 = require('sqlite3').verbose(), db = new sqlite3.Database('shopDB.db', (function(err) { if (!err) { console.log("Database is connected ... \n\n"); } else { console.log("Error connecting database, check for shopDB.db file... \n\n"); } })); /* We add configure directive to tell express to use Jade to render templates */ app.get('env', (function() { app.set('views', __dirname + ''); app.engine('.html', require('jade').__express); // Allows express to get data from POST requests app.use(express.bodyParser()); })); // Database initialization (First list names of tables and check if currently exists.) db.get("SELECT name FROM sqlite_master WHERE type='table' AND name='itemList'", function(err, row) { if (err !== null) { console.log(err); } else if (row == null) { db.run('CREATE TABLE IF NOT EXISTS "itemList" ("ID" INTEGER PRIMARY KEY NOT NULL, "itemName" VARCHAR(100) NOT NULL, "itemWeight" INT(5) NOT NULL, "expiryDate" DATE, "itemPrice" double DEFAULT NULL)', function(err) { if (err !== null) { console.log(err); } else { console.log("SQL Table 'itemList' initialized."); } }); } else { console.log("SQL Table 'itemList' already initialized."); } }); // We render the templates with the data app.get('/', function(req, res) { db.all('SELECT * FROM itemList ORDER BY itemName', function(err, row) { if (err !== null) { res.send(500, "An error has occurred -- " + err); } else { //res.sendfile('./public/index.html') res.render('./index.jade', { itemList: row }, function(err, html) { //res.sendfile('./index.jade') //res.send(200, html); res.status(200).send(html); }); } }); }); // We define a new route that will handle item creation app.post('/add', function(req, res) { ID = req.body.ID; itemName = req.body.itemName; itemWeight = req.body.itemWeight; expiryDate = req.body.expiryDate; itemPrice = req.body.itemPrice; sqlRequest = "INSERT INTO 'itemList' (ID, itemName, itemWeight, expiryDate, itemPrice) VALUES('" + ID + "', '" + itemName + "', '" + itemWeight + "', '" + expiryDate + "', '" + itemPrice + "')" db.run(sqlRequest, function(err) { if (err !== null) { res.send(500, "An error has occurred -- " + err); } else { res.redirect('back'); } }); }); // We define another route that will handle item deletion app.get('/delete/:itemName', function(req, res) { db.run("DELETE FROM itemList WHERE itemName='" + req.params.itemName + "'", function(err) { if (err !== null) { res.send(500, "An error has occurred -- " + err); } else { res.redirect('back'); } }); }); /* This will allow Cozy to run your app smoothly but it won't break other execution environment */ var port = process.env.PORT || 9250; var host = process.env.HOST || "127.0.0.1"; // Starts the server itself var server = http.createServer(app).listen(port, host, function() { console.log("Server listening to %s:%d within %s environment", host, port, app.get('env')); }); 

这是index.jade文件

 doctype 5 html(lang="en") head title Items body form(action="add", method="post") label ID: input(type="text", name="ID") label itemName: input(type="text", name="itemName") label itemWeight: input(type='text', name='itemWeight') label expiryDate: input(type='text', name='expiryDate') label itemPrice: input(type='text', name='itemPrice') input(type="submit", value="Add a new item") ul - for(item in itemList) { li a(href=itemList[item].url)= itemList[item].itemName |  - ( a(href="delete/#{itemList[item].id}") delete | ) - } 

我遵循相同的教程,到达了他们从Jade模板开始的部分,并且遇到了同样的问题。 我备份了一下,从Jade网站上抓取了示例模板,它工作的很好。 我改变了舒适的“书签”模板一点点,并得到它的工作。 你可以试试这个:

 doctype html 

不同的doctype在我的例子中有所不同。 我不是Jade的专家,但我一定会尝试一下,看看你是否有幸运。

编辑:进一步看,看起来像doctype 5已被弃用,现在推荐doctype html

另一个编辑:如果你仍然有你的视图渲染问题,我会做两件事情。 其一,我会查看教程,将玉石视图与您的玉石视图相匹配,然后开始逐个添加一个视图,直到视图缩小为止。 二,我会改变:

 app.get('env', (function() { app.set('views', __dirname + ''); app.engine('.html', require('jade').__express); // Allows express to get data from POST requests app.use(express.bodyParser()); })); 

 app.set('views', __dirname + ''); app.engine('.html', require('jade').__express); // Allows express to get data from POST requests app.use(express.bodyParser()); 

你似乎没有使用env。 variables,我没有看到任何理由来移动你的视图渲染器设置。 将它移到顶部(如示例中所示),看看是否适合您。