[英]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.