鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ node+express項(xiàng)目 render如何渲染views目錄下的子目錄的模板

node+express項(xiàng)目 render如何渲染views目錄下的子目錄的模板

在views下創(chuàng)建一個(gè)文件夾 back ,在back文件夾下創(chuàng)建模板index.jade,定義模板路由,訪(fǎng)問(wèn)模板404。

目錄結(jié)構(gòu)如下圖
圖片描述

app.js代碼如下

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));  //設(shè)置模板相對(duì)路徑(相對(duì)當(dāng)前目錄)
app.set('view engine', 'jade');  //設(shè)置模板引擎

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

users.js路由定義 back文件夾下的index.jade

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
    res.send('respond with a resource');
});
router.get('/back', function(req, res, next) {
  res.render('back/index',{title:'后臺(tái)首頁(yè)'});
});


module.exports = router;

順便把index.js 代碼也貼一下

var express = require('express');
var router = express.Router();


var  MongoClient = require('mongodb').MongoClient;
var  DB_CONN_STR = 'mongodb://localhost:27017/calutar';
var insertData = function (db,data,callback) {
    var collection = db.collection('calutar');
    collection.insert(data,function (err,result) {
        if(err){
            console.log('Error'+err);
            return;
        }
        callback(result);
    })
}
var getData = function (db,callback) {
    var collection = db.collection('calutar');
    collection.find().toArray(function (err,result) {
        if(err){
            console.log('Error:'+err);
            return;
        }
        callback(result)
    })
}

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: '公積金計(jì)算' });
});
router.get('/history',function (req,res,next) {
    res.render('history', { title: '查詢(xún)歷史' });
});

//接口  計(jì)算結(jié)果接口
router.post('/foot',function (req,res) {
    //  從表單取得數(shù)據(jù)
    var accountTemp = req.body.account; //賬戶(hù)余額
    var monthTemp = req.body.month/1; //每月繳費(fèi)
    var ageTemp = req.body.age/1; //年齡
    var sexTemp = req.body.sex; //性別
    var termLimitTemp = req.body.termLimit; //貸款期限
    var typeTemp = req.body.type; //還款類(lèi)型


    var ageLong; // -- 年齡段
    if(sexTemp == 0){ //=0男,=1女
        ageLong = (60 - ageTemp)*12;
    }else if(sexTemp == 1){
        ageLong = (55 - ageTemp)*12;
    }
    var maxGetTemp = accountTemp*8+monthTemp*ageLong;  // -- 最高可貸款
    var monthReturnTemp;
    if(typeTemp==0){ //等額還款
        monthReturnTemp = maxGetTemp/ageLong;
    }
    else if(typeTemp==1){ //逐月遞減
        monthReturnTemp = maxGetTemp/ageLong+3000;
    }
    var dateTemp = new Date().getTime();
    var query_doc = {account:accountTemp,month:monthTemp,age:ageTemp,sex:sexTemp,termLimit:termLimitTemp,type:typeTemp,maxGet:maxGetTemp,monthReturn:monthReturnTemp,date:dateTemp}
    MongoClient.connect(DB_CONN_STR,function (err,db) {
        insertData(db,query_doc,function (result) {
            console.log("插入數(shù)據(jù)成功", result);
            db.close();
        })
    });
    var json ={code:0,msg:'request is ok',data:{maxGet:maxGetTemp,monthReturn:monthReturnTemp}};
    res.send(json);
});
router.post('/head',function (req,res) {
    MongoClient.connect(DB_CONN_STR,function (err,db) {
        getData(db,function (result) {
            console.log("獲取數(shù)據(jù)成功",result);
            res.send({code:0,msg:'request is ok',data:result})
            db.close();
        })
    })
})
module.exports = router;

菜鳥(niǎo)初學(xué)者,很是迷茫,有沒(méi)有大神解決下我的問(wèn)題,不勝感激

回答
編輯回答
枕邊人

app.set('views', [path.join(__dirname, 'views'),path.join(__dirname, 'views/back')]);

2018年9月17日 04:15