繁体   English   中英

NodeJs + Express - 无法获取 /

[英]NodeJs + Express - Cannot GET /

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

你渲染的方式不对。 你必须使用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');
});

Express 是一个返回 app 的函数。

而app对象有一个对应http的方法。

例如,放置、获取、发布等。

此方法将 url 作为第一个参数,将回调函数作为第二个参数。

这个回调函数有三个参数:传入请求的“req”,响应处理的“res”和传递给下一个中间件的“next”。

(“req”、“res”和“next”名称由您决定。)

如果要渲染 ejs 文件,请使用“res.render”而不是“app.render”。

暂无
暂无

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

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