Nu se poate găsi modul '../modele/* Încercarea de a crea REST api în Node.js și MongoDB

0

Problema

Incepand crearea REST api cu Node.js și Mongo DB Deci nu este ceva ce vreau să știu. Primesc aceasta Eroare

Cannot find module '../models/book

Cu mai Detaliată Eroare așa cum se arată mai jos :

PS D:\node_apps\mongo1> npm start

> [email protected] start D:\node_apps\mongo1
> node ./bin/www

internal/modules/cjs/loader.js:892        
  throw err;
  ^

    Error: Cannot find module '../models/book'
    Require stack:
    - D:\node_apps\mongo1\routes\users.js     
    - D:\node_apps\mongo1\app.js
    - D:\node_apps\mongo1\bin\www
        at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
        at Function.Module._load (internal/modules/cjs/loader.js:745:27)
        at Module.require (internal/modules/cjs/loader.js:961:19)
        at require (internal/modules/cjs/helpers.js:92:18)
        at Object.<anonymous> (D:\node_apps\mongo1\routes\users.js:3:12)
        at Module._compile (internal/modules/cjs/loader.js:1072:14)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
        at Module.load (internal/modules/cjs/loader.js:937:32)
        at Function.Module._load (internal/modules/cjs/loader.js:778:12)
        at Module.require (internal/modules/cjs/loader.js:961:19) {
      code: 'MODULE_NOT_FOUND',
      requireStack: [
        'D:\\node_apps\\mongo1\\routes\\users.js',
        'D:\\node_apps\\mongo1\\app.js',
        'D:\\node_apps\\mongo1\\bin\\www'
      ]
    PS D:\node_apps\mongo1> npm start
    
    > [email protected] start D:\node_apps\mongo1
    > node ./bin/www
    
    internal/modules/cjs/loader.js:892        
      throw err;
      ^
    
    Error: Cannot find module './routes/books'
    Require stack:
    - D:\node_apps\mongo1\app.js
    - D:\node_apps\mongo1\bin\www
        at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
        at Function.Module._load (internal/modules/cjs/loader.js:745:27)
        at Module.require (internal/modules/cjs/loader.js:961:19)
        at require (internal/modules/cjs/helpers.js:92:18)
        at Object.<anonymous> (D:\node_apps\mongo1\app.js:9:15)
        at Module._compile (internal/modules/cjs/loader.js:1072:14)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
        at Module.load (internal/modules/cjs/loader.js:937:32)
        at Function.Module._load (internal/modules/cjs/loader.js:778:12)
        at Module.require (internal/modules/cjs/loader.js:961:19) {
      code: 'MODULE_NOT_FOUND',
      requireStack: [
        'D:\\node_apps\\mongo1\\app.js',
        'D:\\node_apps\\mongo1\\bin\\www'
      ]
    }
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! [email protected] start: `node ./bin/www`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     C:\Users\emi\AppData\Roaming\npm-cache\_logs\2021-11-23T17_18_24_504Z-debug.log
    PS D:\node_apps\mongo1>
    PS D:\node_apps\mongo1> 

Codul sursă este în căutarea astfel :

Database.js

var mongoose = require('mongoose');
mongoose.connect('mongodb+srv://admin:****@cluster0.cqryc.mongodb.net/test', {useNewUrlParser: true});

var conn = mongoose.connection;
conn.on('connected',function(){
    console.log('Connected');  
});

module.exports = conn;

userModel.js

var db = require('../database');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var BookSchema = new Schema({
    title : String,
    author : String,
    category : String,
});

module.exports = mongoose.model('Book',BookSchema);

users.js

var express = require('express');
var router = express.Router();
var Book = require('../models/book');


router.get('/', function(req, res) {
  Book.find({}).exec(function(err,books){
    if(err){
      res.send('error occured');
    }else{
      res.json(books);
    }
     });
});

router.get('/:id', function(req, res) {
  Book.findOne({
    _id : req.params.id
  }).exec(function(err,books){
    if(err){
      res.send('error occured');
    }else{
      res.json(books);
    }
     });
});


router.post('/',function(req,res){
  var newBook = new Book();
  newBook.title = req.body.title;
  newBook.author = req.body.author;
  newBook.category = req.body.category;
  newBook.save(function(err,book){
    if(err){
      res.send('error saving book');
    }else{
      res.send(book);
    }
  })
})

module.exports = router;

Și App.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
const books = require('./routes/books');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/books', books);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});



// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});


app.use((err, req, res, next) => {
  // console.log(err);
  err.statusCode = err.statusCode || 500;
  err.message = err.message || "Internal Server Error";
  res.status(err.statusCode).json({
    message: err.message,
  });
});

module.exports = app;

Ce fac gresit? Vă rugăm să am nevoie de indrumare. Eu sunt încercarea de a obține acest lucru, doar lucruri care lipsesc de aici.

mongodb node.js rest
2021-11-23 17:32:32
2

Cel mai bun răspuns

1

Am pus-o la lucru. Schema=> Tabele , am fost, făcând referire la Informații greșite, dar am luat totul să funcționeze bine

deci, în loc de var Book = require('../models/book'); am ajuns cu asta

var Book = require('../models/userModel');

și apoi am adăugat, de asemenea, app.use('/books', books);

și a rezolvat toate problemele. Setarea Cors prea și totul este în regulă și funcționează Corect <3

Multumesc tuturor , multumesc Craig!

2021-11-23 18:30:15
0

Mai jos este în cazul în care sunteți încercarea de a găsi modul. vă spun că se află în directorul în afara de cel pe care îl utilizați pentru a rula aplicația aici cu ../

este că intenția ta?

var Book = require('../models/book');

Cartea îi place ca o clasă care a fost creat în aplicația dvs., astfel încât dacă e corect, aveți nevoie pentru a localiza în ierarhie și corect referință. Dacă e în aceeași locație ca și la plecare .fișier js atunci ar trebui să fie:

var Book = require('./models/book');

Edit - am vazut doar de export.

userModel.js

var db = require('../database');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var BookSchema = new Schema({
    title : String,
    author : String,
    category : String,
});

module.exports = mongoose.model('Book',BookSchema);

în partea de jos aici se pare ca esti exportatoare asta ca la carte. Eu nu sunt un maestru aici, dar ori de câte ori am de export, un curs de referință se utilizează

var Carte = require('userModel.js')

deci .nume de fișier js.

2021-11-23 17:49:18

Am pus-o la lucru. Lasa-ma sa postezi raspunsul.
Revan

Mare, mă bucur că sugestia mea a lucrat
Craig

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................