【发布时间】:2019-03-21 07:00:26
【问题描述】:
我正在使用 node 和 express 与 mustache 模板系统,我创建了一个多页网站,但不希望它在渲染时刷新(使其成为单页),我该如何解决这个问题?
我想我需要使用 ajax,我只是不确定如何。
现在它正在将 url 呈现到另一个页面上,但我需要它在同一页面上呈现。
这是部分代码
const express = require('express');
const parseurl = require('parseurl');
const bodyParser = require('body-Parser');
const path = require('path');
const expressValidator = require('express-validator');
const mustacheExpress = require('mustache-express');
const models = require('./models');
const session = require('express-session');
const app = express();
app.engine('mustache', mustacheExpress());
app.set('view engine', 'mustache');
app.set('views', './views')
app.use(express.static('public'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(expressValidator());
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}));
app.get('/', function(req, res) {
res.render('index')
})
app.get('/signup', function(req, res) {
res.render('signup');
});
app.get('/login', function(req, res) {
res.render('login');
});
app.get('/login', function(req, res) {
if (req.session && req.session.authenticated) {
var user = models.user.findOne({
where: {
username: req.session.username,
password: req.session.password
}
}).then(function(user) {
if (user) {
req.session.username = req.body.username;
req.session.userId = user.dataValues.id;
let username = req.session.username;
let userid = req.session.userId;
res.render('index', {
user: user
});
}
})
} else {
res.redirect('/home')
}
})
app.post('/login', function(req, res) {
let username = req.body.username;
let password = req.body.password;
【问题讨论】:
-
我们需要比这更多的细节。
-
够详细了吗?
-
我添加了更多信息
-
是的,我看到了。但我看不出您的代码与您的问题有什么相关性。
-
现在它正在渲染 url 并加载,但在不同的页面上 - 我需要在同一页面上