我在repl.it中运行它,并显示错误无法获取/
有时它可以工作,有时在特定端口45799上不起作用,但现在它不再起作用。
这是代码:
app.set('view engine', 'ejs');
app.use('/public', express.static('public'));
app.use(bodyParser.json());
app.get('/', (req, res) => {
app.render('index', {
bot: bot
}, (err, html) => {
res.send(html)
if (err) console.log(err)
})
});
app.get('/commands', (req, res) => {
app.render('commands', {
bot: bot
}, (err, html) => {
res.send(html)
if (err) console.log(err)
})
});
app.get('/premium', (req, res) => {
app.render('premium', {
bot: bot
}, (err, html) => {
res.send(html)
if (err) console.log(err)
})
});
app.get('/staff', (req, res) => {
app.render('staff', {
bot: bot
}, (err, html) => {
res.send(html)
if (err) console.log(err)
})
})
let listener = app.listen(45799, (err) => {
console.log('Your app is currently listening on port: ' + listener.address().port);
if (err) console.log(err)
});```
答案 0 :(得分:1)
您渲染的方式错误。您必须使用res
对象而不是app
const express = require('express');
const bodyParser = require('body-parser')
const app = express();
app.set('view engine', 'ejs');
app.use('/public', express.static('public'));
app.use(bodyParser.json());
const bot = { "data": "1" }
app.get('/', (req, res) => {
res.render('index', { bot: bot });
});
app.listen(3000, () => {
console.log('server started');
});
答案 1 :(得分:0)
Express是一个返回应用程序的函数。
app对象具有与http对应的方法。
例如,放置,获取,发布等。
此方法将url作为第一个参数,并将回调函数作为第二个参数。
此回调函数具有三个参数:“ req”用于传入请求,“ res”用于响应处理,“ next”用于传递到下一个中间件。
(“ req”,“ res”和“ next”名称由您决定。)
如果要渲染ejs文件,请使用“ res.render”而不是“ app.render”。