NodeJs + Express-无法获取/

时间:2020-10-21 02:22:09

标签: node.js express

我在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)
});```

2 个答案:

答案 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”。