Node / Express无法获取我的任何html / js / css文件

时间:2016-10-10 18:48:24

标签: javascript node.js express

我有一个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时,如何修复无法获取任何内容的错误?

1 个答案:

答案 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