Node.js app TypeError [ERR_INVALID_ARG_TYPE]:"path" 参数的类型必须是字符串。接收的类型对象



我正在尝试创建一个文件夹视图/圆圈,我将能够在其中渲染数组,但是当我执行 localhost:3001/views/circle 时没有加载任何内容,而是在标题上收到错误。

//-------I added this part in the code as you can see bellow this code-------
//const path = require("path");
//app.set("views", path.join(__dirname, "views"));
//app.set("view engine", "ejs");
//---------------------------------------------------------------------------
const express = require('express')
const path = require("path");
const cors = require('cors')
const app = express()

// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");
app.use(express.static('public'))
app.use(cors())
const circles = [
    {
        id: 1,
        name: 'Twitter',
        image: 'img/twitter.jpg',
        color: '#aa2b31',
        size: 3
    },
    {
        id: 2,
        name: 'Facebook',
        image: 'img/facebook.jpg',
        color: '#63e184',
        size: 1
    },
    {
        id: 3,
        name: 'Skype',
        image: 'img/skype.png',
        color: '#033d49',
        size: 2
    },
]

app.get('/', (req, res) => {
    const help = `
    `
    res.send(help)
  })
app.get('/circles', (req, res) => {
    res.render(circles)
})
app.listen(3001, () => {
  console.log('Server listening on port 3001')
})
module.exports = app;

在这种特殊情况下,这可能没有任何帮助,但可能对搜索此错误的人有帮助。我得到这个是因为我以错误的顺序放置了路线。我的/:id路径在它到达应该到达的地方之前捕获了 post 请求。

set替换为use

app.set("views", path.join(__dirname, "views"));

app.use("views", path.join(__dirname, "views"));

最新更新