我正在构建一个简单的Crud Node / Express / Typescript应用程序,但出现以下错误:
Express server listening on port 3000
(node:39970) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1113:14)
(node:39970) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:39970) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
服务器似乎在端口3000上运行,但实际上我无法在Postman上执行任何GET请求。我想我需要将async await
与try catch
处理程序一起使用,但不确定在哪里失败。
这是我的代码:
import * as express from "express";
import * as bodyParser from "body-parser";
import { Routes } from "./routes/crmRoutes";
import * as mongoose from "mongoose";
class App {
public app: express.Application;
public routePrv: Routes = new Routes();
public mongoUrl: string = "mongodb://localhost/CRMdb";
constructor() {
this.app = express();
this.config();
this.routePrv.routes(this.app);
this.mongoSetup();
}
private config(): void {
this.app.use(bodyParser.json());
this.app.use(bodyParser.urlencoded({ extended: true }));
this.app.use(express.static("public"));
}
private mongoSetup(): void {
mongoose.Promise = global.Promise;
mongoose.connect(this.mongoUrl, {
useNewUrlParser: true
});
}
}
export default new App().app;
import * as mongoose from "mongoose";
import { ContactSchema } from "../models/crmModel";
import { Request, Response } from "express";
const Contact = mongoose.model("Contact", ContactSchema);
export class ContactController {
public addNewContact(req: Request, res: Response) {
let newContact = new Contact(req.body);
newContact.save((err, contact) => {
if (err) {
res.send(err);
}
res.json(contact);
});
}
public getContacts(req: Request, res: Response) {
Contact.find({}, (err, contact) => {
if (err) {
res.send(err);
}
res.json(contact);
});
}
public getContactWithID(req: Request, res: Response) {
Contact.findById(req.params.contactId, (err, contact) => {
if (err) {
res.send(err);
}
res.json(contact);
});
}
public updateContact(req: Request, res: Response) {
Contact.findOneAndUpdate(
{ _id: req.params.contactId },
req.body,
{ new: true },
(err, contact) => {
if (err) {
res.send(err);
}
res.json(contact);
}
);
}
public deleteContact(req: Request, res: Response) {
Contact.deleteOne({ _id: req.params.contactId }, (err, contact) => {
if (err) {
res.send(err);
}
res.json({ message: "Successfully deleted contact!" });
});
}
}