Saya mencoba membangun api istirahat dasar menggunakan nodeJS. Tetapi ketika saya mencoba memanggil titik akhir mana pun, tidak ada yang dipanggil. Perubahan apa yang harus saya lakukan untuk membuatnya berfungsi. Tolong bantu.

const express = require('express') ;
const app = express() ;
const morgan = require('morgan') ;
const bodyParser = require('body-parser') ;

const productRoutes = require('./api/routes/products') ;
const orderRoutes = require('./api/routes/orders') ;

console.log('abc1') ;

//middleware
app.use(morgan('dev')) ;
app.use(express.urlencoded({ extended: true }));
app.use(express.json);

console.log('abc2') ;

//routes
app.use('/products' , productRoutes ) ;
//console.log('abc5') ;
app.use('/orders' , orderRoutes) ;


//delete it later
app.get('/' , (req , res, next) => {
    res.status(200).json({
        message: 'done'
    }) ;
}) ;
//delete end

//for 404 / not found error
app.use((req,res,next) => {
    const error = new Error('not found');
    error.status = 404 ;
    next(error);
});

//handle any error
app.use((error , req, res,next) => {
    res.status(error.status || 500) ;
    res.json({
        message : error.message 
    }) ;
});

module.exports = app ;

File app.js saya

const express = require('express') ;
const router = express.Router() ;

router.get('/' , (req,res,next) =>{
    console.log('abc') ;
    res.status(200).json({
        message : 'In get routes'
    }
    ) ;
}) ;

router.post('/' , (req,res,next) =>{
    res.status(201).json({
        message : 'In post routes'
    }
    ) ;
}) ;

router.get('/:productId' , (req,res,next) =>{
    res.status(200).json({
        message : 'In get routes' + req.params.productId 
    }
    ) ;
}) ;

module.exports = router ;

File products.js saya

const http = require('http') ;
const app = require('./app') ;

const port = process.env.PORT || 3000 ;
console.log(port) ;

const server = http.createServer(app);

server.listen(port) ;

File server.js saya

Ketika saya mencoba menjalankan server itu berjalan normal. Dan console.logs juga berfungsi dengan baik. Dan juga tidak ada kesalahan yang dilemparkan.

1
ghost.rider10 13 Maret 2020, 23:37

1 menjawab

Jawaban Terbaik

Pertama, ubah:

app.use(bodyParser.json);

Untuk:

app.use(bodyParser.json())

Kedua, Anda tidak mendengarkan port apa pun. Anda perlu menambahkan ini ke app.js Anda:

const port = 4000
app.listen(port, () => console.log(`App is at port: ${port}!`))

Dan ya, tambahkan garis miring ke rute:

app.use('/products', productRoutes);
1
Yasmin M 15 Maret 2020, 15:19