我正在使用mongodb compass和koa js创建一个简单的CRUD应用程序.这是我正在使用的dao文件

const products = require('./index').db('store').collection('products');

const ObjectId = require('mongodb').ObjectId;

const save = async ({name, description,qty,price}) => {
    const result = await products.insertOne({name, description,qty,price});
    return result;
}

const getAll = async () => {
    const cursor =  await products.find();
    return cursor.toArray();
}

const update = async (id, {name,description,qty,price}) => {
    const result =  await products.replaceOne({_id:ObjectId(id)}, {name,description,qty,price});
    return result;
}

const removeById = async id => {
    await products.deleteOne({_id:ObjectId(id)});
}

module.exports = {save, getAll,update,removeById};

这是我使用的API文件.

const {save,getAll,update,removeById} = require ('../dal/products.dao');

const createProduct = async ({name, description,qty,price})=>{
    const product = {
        name,description,qty,price
    }
    return await save(product);
}

const getProducts = async () => {
    return await getAll();
}

const deleteProduct =  async id => {
    return await removeById(id);
}

const updateProduct = async (id, {name, description,qty,price})=>{
    return await update(id, {name, description, qty, price});
}

module.exports = {
    createProduct, getProducts,deleteProduct,updateProduct
}

最后这是我用的路由,

const Router=require("@koa/Router");

const {createProduct, getProducts,deleteProduct,updateProduct } = require('../API/products.api');

const router = new Router({
    prefix:'/products'
})

router.get('/',async ctx=>{
    ctx.body = await getProducts();
})

router.post('/',async (ctx)=>{
    let product = ctx.request.body;
    product = await createProduct(product);
    ctx.set('Content-type','application.json');
    ctx.response.status = 201;
    ctx.body = product;
})

router.delete('/:id',async ctx=>{
    const id = ctx.params.id;
    await deleteProduct(id);
    ctx.body = "Item deleted!";
});

router.put('/:id',async ctx=>{
    const id = ctx.params.id;
    let product = ctx.request.body;
    product = await updateProduct(id,product);
    ctx.response.status = 200;
    ctx.body = product;
});

module.exports = router;

我在index.js年用这个代码建立了连接

const {MongoClient} = require("mongodb");

const client =  new MongoClient('mongodb://localhost:27017',{
    useNewUrlParser: true,
    useUnifiedTOpology: true
});

client.connect(err => {
    if(err){
        console.error(err);
        process.exit(-1);
    }
    console.log("MongoDB connection success..!");
})

module.exports = client;

App.js如下所示,

const bodyParser = require('koa-bodyparser');
const cors = require('@koa/cors');
const koa = require('koa');
const mongodb = require('./dal/index.js');
const productRoutes = require('./routes/products.routes');
const userRoutes = require ('./routes/users.routes');

const app = new koa();
app.use(bodyParser());
app.use(cors());

app.use(productRoutes.routes()).use(productRoutes.allowedMethods());
app.use(userRoutes.routes()).use(userRoutes.allowedMethods());

const PORT = 3000;

app.listen(PORT,()=>{
    console.log("Server is up and running on ", PORT,"...");
});

当我使用postman作为整数传递值时,它将作为整数保存在db中.但当我使用react前端添加数据时,它会自动转换为字符串值.我想把它保持为整数.

我try 使用输入类型作为"Number".但运气不好.

你能帮帮我吗.

推荐答案

请参阅下面的代码段.可以使用parseInt()强制将值转换为整数.然后分配值并将其保存在数据库中.

const saveUser = async ({name, email,address,phone, type ,password}) => {
    let tpno = parseInt(phone);
    const result = await users.insertOne({name, email,address,phone:tpno, type ,password});
    return result;
}

Reactjs相关问答推荐

当props 更改时,React Native功能组件不会更新

无法在jest中发布行动

App.js中的H2组件不会动态呈现.这可能是什么问题?

如何访问子集合中的文档?

React中的useEffect钩子

shadcn输入+窗体+Zod;一个部件正在改变要被控制的不受控制的输入;

如何垂直对齐 React Bootstrap Table 行中的项目

React 为什么标签导致 onClick 事件运行 2 次?

组件安装后调用自定义钩子

如何解决使用react-hook-form和yup动态创建的输入不集中的问题

在一个事件处理程序中进行多次调度是个好主意吗?

如何管理可重用无线电输入的 React 状态?

是否可以直接在 jsx 标签上使用 CSS 定义的 colored颜色 ?

Redux Toolkit 配置,是否适用于全栈应用程序?

使用 axios 响应路由 Dom 操作

将路径数组传递给Route会引发错误

是什么导致了这个令人惊讶的数组导致 React

如何在 Reactjs 中判断受保护路由上的用户角色?

单击三个按钮之一后如何显示特定按钮的内容?单击其中一个按钮后应隐藏所有按钮

ClearInterval 在 React 中的 useRef 没有按预期工作