Я создаю контроллер для моего входа в маршрут, но обнаруживаю ошибку в терминале - PullRequest
0 голосов
/ 09 апреля 2020

Я создаю сайт электронной коммерции в стеке 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, но я все еще сталкиваюсь с этой ошибкой, и я не могу отладить эти ошибки, поскольку я все еще очень новичок в программировании, но я полон решимости учиться и становиться лучше со временем. Помощь будет оценена.

1 Ответ

0 голосов
/ 09 апреля 2020

Если у вас нет файла точки входа с именем 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

...