如何将其前端基于html的node.js网站与其前端基于jade模板引擎的另一个node.js网站相结合?我正在使用Express框架。
在前端有四个文件:index.html, index2.html, chat1.html, chat2.html
,它们位于公共文件夹中。我要添加到此网站的博客网站只有jade template engine
,它们位于views文件夹中。
index.html
(位于公共文件夹中)是网站主页的入口点。从index.html
开始,我引用index3.jade
,这是第二个应用的主页,即博客jade应用,Chrome浏览器声明:" 404 Not Found"。但是,我可以去博客玉网站的另外两页,即添加帖子和添加类别。它只是博客jade应用程序的主页未显示。
因此,我无法仅查看从根目录开始的博客jade应用程序的主页。 html应用程序和博客jade应用程序都从根目录开始。我能够将博客jade应用程序显示在根目录中,但后来我看不到html应用程序,它也从根目录开始。
以下是我从index.html首页引用每个文件的方式:
`<li><a href="index2.html">gallery</a></li>`
`<li><a href="chat1.html">chat</a></li>`
`<li><a href="../views/index3.jade">blog</a></li>`
有没有办法让博客jade app的主页显示在根目录以外的目录中?
以下是相关的app.js代码:
// Gallery HTML Code
var routes = require('./');
app.get('/public/index.html');
// Blog Code
var mongo = require('mongodb');
var db = require('monk')('localhost/nodeblog');
var routes = require('./');
var routes = require('./routes/index3');
var posts = require('./routes/posts');
var categories = require('./routes/categories');
var app = express();
app.locals.moment = require('moment');
app.locals.truncateText = function(text, length) {
var truncatedText = text.substring(0, length);
return truncatedText;
}
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// Express Session
app.use(session({
secret: 'secret',
saveUninitialized: true,
resave: true
}));
// Express Validator
app.use(expressValidator({
errorFormatter: function(param, msg, value) {
var namespace = param.split('.'),
root = namespace.shift(),
formParam = root;
while (namespace.length) {
formParam += '[' + namespace.shift() + ']';
}
return {
param: formParam,
msg: msg,
value: value
};
}
}));
// Connect-Flash from Express-Messages
app.use(flash());
app.use(function(req, res, next) {
res.locals.messages = require('express-messages')(req, res);
next();
});
// Make our db accessible to our router
app.use(function(req, res, next) {
req.db = db;
next();
});
app.use('/index3', routes);
app.use('/posts', posts);
app.use('/categories', categories);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
以下是routes文件夹中index3.js的相关代码:
router.get('index3', function(req, res, next) {
var db = req.db;
var posts = db.get('posts');
posts.find({}, {}, function(err, posts) {
res.render('index3', { posts: posts });
});
});
module.exports = router;
以下是routes文件夹中index.js的相关代码:
router.get('/', function(req, res, next) {
res.render('public/index.html');
});
module.exports = router;