我正在尝试使用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();
});
});
});