我有一个Node / Express应用程序。还有一个客户端应用程序,具有多个html文件和多个js文件。我正在使用WebStorm,然后单击RUN。这打印在控制台中:
"C:\Program Files (x86)\JetBrains\WebStorm 2016.2.2\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" "C:\Users\name\Downloads\Fall 2016\Web\thing\src\server\index.js"
Shuffle router is loaded
I am open
Example app listening on 8080
所以快递部分有效。
然而,当我去" http://localhost:8080/game.html
"我得到Cannot GET /game.html
。所有css页面都会发生这种情况。我可以使用Webstorm中的预览(?)按钮打开html页面,但这会打开" http://localhost:63342/
"。
我的文件夹结构如下:
public
css
style.css
img
card1.jpg
js
game.js
game.html
src
server
routes
shuffleRoutes.js
index.js
在定义一些函数之前,我的index.js以这段代码开头:
let express = require('express'),
bodyParser = require('body-parser'),
logger = require('morgan'),
_ = require('lodash');
let path = require('path');
//redis, session
let app = express();
app.use(logger('combined'));
app.use(express.static('public'));
app.use(bodyParser.json({}));
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/img',express.static(path.join(__dirname, 'public/img')));
app.use('/js',express.static(path.join(__dirname, 'public/js')));
app.use('/css',express.static(path.join(__dirname, 'public/css')));
app.get("/v1/game", require("./routes/shuffleRoute.js"));
console.log("I am open");
并在文件的末尾
let server = app.listen(8080, function () {
console.log('Example app listening on ' + server.address().port);
});
我的game.js没有对index.js文件的任何引用。
我的game.html文件只有<script src="./js/game.js"></script>
。
当我运行Webstorm项目并转到localhost:8080 / game.html时,如何修复无法获取任何内容的错误?
答案 0 :(得分:0)
您需要为要使用的快递定义端点,
所以你需要为这条路线提供game.html:
由于你正在渲染html,你需要使用ejs。
所以添加
//configuration
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'ejs');
//route
app.get('/game',function(req,res,next){
res.render('game.html');
});
现在转到localhost:8080/game
这应该显示你的game.html