[英]NodeJS - Trying to render index.ejs file, but still only servers index.html that is in my public folder
[英]Unable to render index.html file from my view folder in angular2
我正在创建一个MEAN Stack应用程序,其中已在/client
文件夹中设置了angular。 我希望当我在/client
文件夹中运行npm start
命令时,它应该从/views
文件夹中呈现index.html
文件,这是我做错的错误
Cannot GET /
文件夹结构如下。
MeanApp
-----客户端(此处安装了angluar2,但没有index.html文件)
----------应用
-----意见
---------- index.html
-----路线
----- server.js
server.js中的代码
var express = require("express");
var path = require("path");
var bodyParser = require("body-parser");
var index = require('./routes/index');
var tasks = require("./routes/tasks");
var app = express();
//View engines
app.set("views", path.join(__dirname,'views'));
app.set("view engine", 'ejs');
app.engine("html", require("ejs").renderFile);
//Set static folder
app.use(express.static(path.join(__dirname,'client')));
// Body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use('/', index);
app.use('/index', index);
app.use('/api', tasks);
//listen
app.listen(3000, function(){
console.log("Server listing @ 3000");
});
在这里,您需要为快递服务器定义路由,例如:
app.set('appPath', 'client'); //this is a folder where your index.html is
app.route('/*')
.get(function(req, res) {
res.sendfile(app.get('appPath') + '/index.html');
});
这将导致浏览器中的每个调用都呈现索引文件。
const http = require('http');
fs = require('fs');
var express = require('express');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');
var app = express();
app.set('appPath', 'views');
app.use(express.static(__dirname + '/views'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(expressValidator());
app.use('/*', function(req, res, next) {
res.sendfile(app.get('appPath') + '/index.html');
});
http.createServer(app).listen(3001, function() {
console.log(`Express server listening on port 3001`);
});
exports = module.exports = app;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.