Rest Express API Mocha测试适用于终端,不适用于浏览器

时间:2019-07-18 09:07:46

标签: rest express mocha chai chai-http

我正在尝试使用MongoDB构建Express REST API。我正在使用Mocha,Chai,Chai-http测试我的应用程序。它正在终端上工作,但我需要在浏览器上显示。使用https://mochajs.org/#running-mocha-in-the-browser中的默认页面。但这不起作用。它只显示一个空白页面。

app / models / book.js

   const mongoose = require('mongoose');
   mongoose.connect('mongodb://localhost:27017/books', {useNewUrlParser:true}, 
   function(err){
       if (!err) { console.log('MongoDB bağlantısı başarılı') }
       else { console.log('MongoDB bağlantısı hatalı : ' + err) }

   });
   let mongoSchema =   mongoose.Schema;

   const bookSchema = {
       _id:Number,
       name:String,
       sayfa:Number
   };

   module.exports = mongoose.model('books',bookSchema);

server.js

const express =require('express');
const app=express();
const bodyparser =require('body-parser');
const router =express.Router();
const Books = require('./app/models/book')
const jwt = require('jsonwebtoken');

app.use(bodyparser.json());
app.use(bodyparser.urlencoded({"extended" : false}));


router.get("/",function(req,res){
    res.json({"Hata" : false,"Mesaj" : "Kitap listesi uygulaması."});
});



router.route("/kitap")
    .get(function(req,res){
        var response = {};
        Books.find({},function(err,data){

            if(err) {
                response = {"Hata" : true,"Mesaj" : "Kitapları listemede hata oluştu."};
            } else {
                response = {"Hata" : false,"Mesaj" : data};
            }
            res.json(response);
        });
    });



router.route("/kitapEkle")
    .get(function(req,res){

    })

    .post(function(req,res){
        var db = new Books();
        var response = {};
        db._id=req.body.id;
        db.name=req.body.name;
        db.sayfa=req.body.sayfa;
        // db.__v=req.body.bune;
        db.save(function(err){
            if(err) {
                response = {"Hata" : true,"Mesaj" : "Kitap ekleme hatalı."};
            } else {
                response = {"Hata" : false,"Mesaj" : "Kitap eklendi."};
            }
            res.json(response);
        });
    });



router.route("/kitap/:id")
     //GET ile seçili kitap gelir
    .get(function(req,res){
        var response = {};
        Books.findById(req.params.id,function(err,data){
            if(err) {
                response = {"Hata" : true,"Mesaj" : "İstediğiniz kitap bulunamadı"};
            } else {
                response = {"Hata" : false,"Mesaj" : data};
            }
            res.json(response);
        });
    })

    .put(function(req,res){
        var response = {};
        Books.findById(req.params.id,function(err,data){
            if(err) {
                response = {"Hata" : true,"Mesaj" : "Kitap bulunamadı"};
            } else {
                if(req.body.name !== undefined) {
                    data.name = req.body.name;
                }
                if(req.body.name !== undefined) {
                    data.name = req.body.name;
                }
                data.save(function(err){
                    if(err) {
                        response = {"Hata" : true,"Mesaj" : "Kitap güncellenirken hata oluştu"};
                    } else {
                        response = {"Hata" : false,"Mesaj" : "Bu kitap için güncelleme işlemi gerçekleşti. "+req.params.id};
                    }
                    res.json(response);
                })
            }
        });
    })

    .delete(function(req,res){
        var response = {};
        Books.findById(req.params.id,function(err,data){
            if(err) {
                response = {"Hata" : true,"Mesaj" : "Seçili kitap bulunamadı"};
            } else {
                Books.remove({_id : req.params.id},function(err){
                    if(err) {
                        response = {"Hata" : true,"Mesaj" : "Error deleting data"};
                    } else {
                        response = {"Hata" : true,"Mesaj" : "ID'si "+req.params.id+" olan kitap silindi."};
                    }
                    res.json(response);
                });
            }
        });
    })


app.use('/',router);


module.exports=app;
app.listen(3000);

server.test.js

var assert = require("assert");
let chai = require("chai");
let chaiHttp = require("chai-http");
let server=require("./server");
let should = chai.should();
chai.use(chaiHttp);
let Book = require('./server');
describe('GET /kitap', () => {

        it('bütün kitapları getir', (completed) => {
            chai.should();
            chai.request(server)
                .get('/kitap')
                .end((err, res) => {
                    chai.expect(res.should.have.status(200));
                    res.body.should.be.a('array');
                    // res.body.length.should.be.eql(0);
                    completed();
                });      
            });
    });

0 个答案:

没有答案