var express = require("express");
var cors = require("cors");
var mongoClient = require("mongodb").MongoClient;
var connectionString = "mongodb://127.0.0.1:27017";
var app = express();
app.use(cors());
app.use(express.urlencoded({
extended:true
}));
app.use(express.json());
app.get("/getusers", (req, res)=>{
mongoClient.connect(connectionString, (err, clientObj)=>{
if (!err) {
var database = clientObj.db("reactdb");
database.collection("tblusers").find({}).toArray((err, documents) => {
if (!err) {
res.send(documents);
}
})
}
})
});
app.post("/registeruser", (req, res)=>{
var userdetails = {
UserId: req.body.UserId,
UserName: req.body.UserName,
Password: req.body.Password,
Age: parseInt(req.body.Age),
Mobile: req.body.Mobile,
Subscribed: (req.body.Subscribed === "true")?true:false
};
mongoClient.connect(connectionString,(err, clientObj)=>{
if(!err){
var database = clientObj.db("reactdb");
database.collection("tblusers").insertOne(userdetails,(err, result)=>{
if(!err){
console.log("Record Inserted...");
res.redirect("/getusers");
}
})
}
})
})
app.listen(4000);
console.log("Server Started : http://127.0.0.1:4000");
我在名为 api.js 的服务器文件夹中创建了这个 API,然后使用了express和MongoDB。我尝试连接到 MongoDB 并在屏幕上显示记录,但当我输入 http://127.0.0.1:4000/getusers 并点击 enter 时,它会继续加载网站,并且不显示任何内容。我不知道为什么会这样。
这是工作示例:
const express = require("express");
const app = express();
const { MongoClient } = require("mongodb");
const url = "mongodb://localhost:27017";
const client = new MongoClient(url);
const PORT = 5000;
// Database Name
const dbName = "reactdb";
app.use(express.json());
(async () => {
await client.connect();
const db = client.db(dbName);
const collection = db.collection("tblusers");
})();
app.post("/getusers", async (req, res) => {
var database = client.db(dbName);
let result = await database.collection("tblusers").find().toArray();
return res.status(200).json({
msg: "record fetched successfully",
data: result,
});
});
app.post("/registeruser", async (req, res) => {
let userdetails = {
UserName: req.body.UserName,
Password: req.body.Password,
Age: parseInt(req.body.Age),
Mobile: req.body.Mobile,
Subscribed: req.body.Subscribed === "true" ? true : false,
};
var database = client.db(dbName);
let result = await database.collection("tblusers").insertOne(userdetails);
if (result.acknowledged) {
return res.status(200).json({
msg: "record inserted successfully",
});
}
res.status(400).json({ msg: "internal server error" });
});
app.listen(PORT, () => {
console.log("server listening on : " + PORT);
});