node.js - 我正在为我的登录路线创建一个控制器,但我在终端中遇到错误
问题描述
我正在 MERN 堆栈上创建一个电子商务网站,我是一个初学者。在为我的登录路由控制器编写代码时,我收到了这个错误。
C:\Users\AbTorres9\Desktop\MERN\projbackend>node start
internal/modules/cjs/loader.js:985
throw err;
^
Error: Cannot find module 'C:\Users\AbTorres9\Desktop\MERN\projbackend\start'
←[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)←[39m
←[90m at Function.Module._load (internal/modules/cjs/loader.js:864:27)←[39m
←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)←[39m
←[90m at internal/main/run_main_module.js:18:47←[39m {
code: ←[32m'MODULE_NOT_FOUND'←[39m,
requireStack: []
}
这是我的控制器的代码:
const User = require("../models/user");
const { check, validationResult } = require("express-validator");
var jwt = require("jsonwebtoken");
var expressJwt = require("express-jwt");
exports.signup = (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({
error: errors.array()[0].msg
});
}
const user = new User(req.body);
user.save((err, user) => {
if (err) {
return res.status(400).json({
err: "NOT able to save user in DB"
});
}
res.json({
name: user.name,
email: user.email,
id: user._id
});
});
};
exports.signin = (req, res) => {
const errors = validationResult(req);
const { email, password } = req.body;
if (!errors.isEmpty()) {
return res.status(422).json({
error: errors.array()[0].msg
});
}
User.findOne({ email }, (err, user) => {
if (err || !user) {
return res.status(400).json({
error: "USER email does not exists"
});
}
if (!user.autheticate(password)) {
return res.status(401).json({
error: "Email and password do not match"
});
}
//create token
const token = jwt.sign({ _id: user._id }, process.env.SECRET);
//put token in cookie
res.cookie("token", token, { expire: new Date() + 9999 });
//send response to front end
const { _id, name, email, role } = user;
return res.json({ token, user: { _id, name, email, role } });
});
};
exports.signout = (req, res) => {
res.json({
message: "User signout"
});
};
我还安装了 json 文件中提到的所有模块,但我仍然面临这个错误,我无法调试这些错误,因为我在编程方面仍然非常陌生,但我决心学习并随着时间变得更好. 帮助将不胜感激。
解决方案
除非您将入口点文件命名为start
,否则我认为您的意思是这样做npm start
将start
在您的package.json
.
发生此错误Error: Cannot find module 'C:\Users\AbTorres9\Desktop\MERN\projbackend\start'
是因为您使用的命令node start
将尝试启动您的服务器,在当前目录中查找名为 的文件,该文件start
不存在,因此出现错误
例如,如果您在名为 的文件中定义了 Express 服务器代码app.js
,您可以通过运行node app.js
推荐阅读
- c# - 如何使用 switch case 处理异常
- javascript - 为什么我不能从 JavaScript 中的 cookie 解析 HTML
- php - 在评论部分更改验证码的定位
- c++ - 如何枚举本地计算机的各种帐户权限常量?
- python - pytest 和多个 test_request_context
- javascript - Sweetalert2 队列模式对每个确认按钮执行操作
- laravel - Laravel Dusk Facebook\WebDriver\Exception\SessionNotCreatedException 上的错误:未创建会话:Chrome 版本必须介于 70 和 73 之间
- java - Spring Data Elasticsearch 映射 id 命名字段在 _source 中
- javascript - 如何在android studio中从带有(ID)编号的xml文件中获取数据
- swift - 使用 associatedType 作为 Type 从泛型类继承协议