首页 > 解决方案 > 我正在为我的登录路线创建一个控制器,但我在终端中遇到错误

问题描述

我正在 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 文件中提到的所有模块,但我仍然面临这个错误,我无法调试这些错误,因为我在编程方面仍然非常陌生,但我决心学习并随着时间变得更好. 帮助将不胜感激。

标签: node.jsexpressmern

解决方案


除非您将入口点文件命名为start,否则我认为您的意思是这样做npm startstart在您的package.json.

发生此错误Error: Cannot find module 'C:\Users\AbTorres9\Desktop\MERN\projbackend\start'是因为您使用的命令node start将尝试启动您的服务器,在当前目录中查找名为 的文件,该文件start不存在,因此出现错误

例如,如果您在名为 的文件中定义了 Express 服务器代码app.js,您可以通过运行node app.js


推荐阅读