简体   繁体   English

如何从不包含express.static的文件夹中呈现模板?

[英]How to render a template from a folder which does not contain express.static?

I have my loginController as 我有我的loginController作为

 var User = require('./../models/User.js'); var loginController = {}; loginController.match = function(req, res){ var username = req.body.username; var password = req.body.password; User.findOne({username : username, password : password}) .then(function(user){ if(user){ res.render('profile',{ title : 'Profile', user : user }); /*return res.status(200).json({ success : true, data : user });*/ } else{ return res.status(200).json({ message : "Either username or password is wrong" }); } }) .catch(function(err){ return res.status(500).json({ message : err }) }); } module.exports = loginController; 

which runs as soon as i submit the login credintals.If on correct validation i want to render profile.handlebars and i am able to render it also but i am unable to consume the css which is using served using express.static and is present in a seperate file which is my app.js. 它在我提交登录凭据后立即运行。如果经过正确的验证,我想呈现profile.handlebars,并且我也能够呈现它,但是我无法使用正在使用express.static的css,并且存在于一个单独的文件,即我的app.js。

My app.js 我的app.js

 var express = require('express'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var session = require('express-session'); var hbs = require('express-handlebars'); var Path = require('path'); var routes = require('./routes.js'); var app = express(); /*View Engine*/ app.engine('handlebars',hbs({defaultLayout : 'layouts.handlebars', layoutsDir : __dirname + './../views/layouts'})); app.set('views', Path.join(__dirname, './../views')); app.set('view engine', 'handlebars'); /*Serve Static files*/ app.use(express.static(__dirname+'./../public')); mongoose.connect('mongodb://localhost/tournament', function(){ console.log('connected to tournament..'); }); /*Template Routes*/ /*Login*/ app.get('/', function(req,res,next){ res.render('login',{ title : 'Login' }); }) /*Profile app.get('/profile',function(req,res,next){ res.render('profile',options) }); */ app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(cookieParser()); app.use(session({secret : "asdasdvbvc234234sdfsdf23213123", resave : false, saveUninitialized : true})); app.use('/api', routes); module.exports = app; 

My profile.handlebars 我的个人资料

 <div class="row"> <div class="col-md-12"> <div class="float-right"> Hello, {{user.username}} <button class="btn btn-md btn-danger">Logout</button> </div> </div> </div> 

try changing app.use(express.static(__dirname+'./../public')); 尝试更改app.use(express.static(__dirname+'./../public')); to app.use(express.static(Path.join(__dirname, './../public'))); app.use(express.static(Path.join(__dirname, './../public')));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM