繁体   English   中英

“路径”参数必须是字符串类型。 收到 TypeError 的实例。 使用 mongoose 在 Node.js 中出现此错误

[英]The "path" argument must be of type string. Received an instance of TypeError. Getting this error in Node.js with mongoose

这是端口 4000 Connection Sucessfull node:internal/errors:464 的错误列表
错误捕获堆栈跟踪(错误); ^

TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。 在新视图 (D:\ MERN\mernbackend\node_modules\express\lib\view.js:56:14) 在 Function.render (D:\MERN\mernbackend\node_modules\express\lib\application.js:570:12) 在 ServerResponse.render (D :\MERN\mernbackend\node_modules\express\lib\response.js:1012:7) at D:\MERN\mernbackend\src\app.js:30:13 at Layer.handle [as handle_request] (D:\MERN \mernbackend\node_modules\express\lib\router\layer.js:95:5) 在下一个 (D:\MERN\mernbackend\node_modules\express\lib\router\route.js:137:13) 在 Route.dispatch ( D:\MERN\mernbackend\node_modules\express\lib\router\route.js:112:3) { 代码:'ERR_INVALID_ARG_TYPE' }

这是 app.js 文件

const path = require('path');
const hbs = require('hbs');
const app = express();
require('./db/connect');
const port = process.env.PORT || 4000;

const templatePath = path.join(__dirname, '../templates/views')
const partialsPath = path.join(__dirname, '../templates/partials')
app.set('view engine', 'hbs');
app.set('views', templatePath)
hbs.registerPartials(partialsPath);

app.get('/', (req, res) => {
    res.render('index')
})

app.get('/register', (req, res) => {
    res.render('register')
})

app.get('/login', (req, res) => {
    res.render('login')
})

app.post('/register', async (req, res) => {
    try {
        console.log(req.body.fname);
    } catch (err) {
        res.render(err)
    }
})

app.listen(port, (err) => {
    console.log(`listing form port ${port}`);
})```

**this is register.hbs file**

      <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      {{>headLink}}
      <title>Register</title>
    </head>
    <body>
    
      <style>
        /* Chrome, Safari, Edge, Opera */
    input::-webkit-outer-spin-button,
    input::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }
    
    /* Firefox */
    input[type=number] {
      -moz-appearance: textfield;
    }
    
    </style>
        {{>nav}}
    <form action="/register" method="POST">  
      
    <label> Firstname </label>         
    <input type="text" name="firstname" size="15"/> <br> <br>  
    <label> Middlename: </label>     
    <input type="text" name="middlename" size="15"/> <br> <br>  
    <label> Lastname: </label>         
    <input type="text" name="lastname" size="15"/> <br> <br>  
      
    <label>   
    Course :  
    </label>   
    <select>  
    <option value="Course">Course</option>  
    <option value="BCA">BCA</option>   
    <option value="BBA">BBA</option>  
    <option value="B.Tech">B.Tech</option>  
    <option value="MBA">MBA</option>  
    <option value="MCA">MCA</option>  
    <option value="M.Tech">M.Tech</option>  
    </select>  
      
    <br>  
    <br>  
    <label>   
    Gender :  
    </label><br>  
    <input type="radio" name="gender"/> Male <br>  
    <input type="radio" name="gender"/> Female <br>  
    <input type="radio" name="gender"/> Other  
    <br>  
    <br>  
      
    <label>   
    Phone :  
    </label>  
    <input type="text" name="country code"  value="+91" size="2"/>   
    <input type="number" name="phone" size="10"/> <br> <br>  
    Address  
    <br>  
    <textarea cols="80" rows="5" value="address" name="address">  
    </textarea>  
    <br> <br>  
    Email:  
    <input type="email" id="email" name="email"/> <br>    
    <br> <br>  
    Password:  
    <input type="Password" id="pass" name="pass"> <br>   
    <br> <br>  
    Re-type password:  
    <input type="Password" id="repass" name="repass"> <br> <br>  
    <input type="submit" value="register"/>  
    </form> 
    </body>
    </html>



尝试在第 7 行的第二个参数中添加/

const templatePath = path.join(__dirname, '/../templates/views')

同样对于第 8 行

暂无
暂无

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

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