无法在 ReactJS 后端项目上将项目添加到 SQL 数据库

Posted

技术标签:

【中文标题】无法在 ReactJS 后端项目上将项目添加到 SQL 数据库【英文标题】:Can not add items to SQL database on ReactJS backend project 【发布时间】:2019-01-09 07:12:53 【问题描述】:

所以我试图只向我的后端发出一个 POST 请求,最终用户可以添加一个项目,它应该被发送到数据库而不是返回。当我使用 Postman 通过输入 JSON 数据发出随机请求时,它一直告诉我我正在尝试在每一行中放置空项目。

这是我在 DB 文件夹中的代码

INSERT INTO ecomerce_products
(item_id, name, price, description, img_url, quantity)
VALUES($1, $2, $3, $4, $5, $6)
RETURNING *;

这是我的控制器文件中的代码

module.exports = 
addToProducts(req, res, next) 
    const db = req.app.get("db");
    const  item_id, name, price, description, img_url, quantity  
= req.params;
    db.addToProducts([item_id, name, price, description, img_url, 
quantity])
        .then(response => 
            res.status(200).send(response);
        )
        .catch(err => res.status(500).send(err));
 
 ;

【问题讨论】:

【参考方案1】:

我希望您使用的是 express 或其他一些框架。如果您正在发出发布请求,则数据应通过请求正文传递。因此req.params 不应该有这些属性,因此它给出了 null。

module.exports = 
addToProducts(req, res, next) 
    const db = req.app.get("db");
    console.log(req.body);
    const  item_id, name, price, description, img_url, quantity 
= req.body;

    db.addToProducts([item_id, name, price, description, img_url,
quantity])
        .then(response => 
            res.status(200).send(response);
        )
        .catch(err => res.status(500).send(err));
 
 ;

试试这样的方法,看看你是否得到了数据。

【讨论】:

是的,我正在使用 express,它运行良好,非常感谢 :)

以上是关于无法在 ReactJS 后端项目上将项目添加到 SQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS Axios 外部 API CORS

如何将文本框添加到 s-s-rS 项目中的现有矩阵?

如何在 XCode 上将自定义文件扩展名导入 iOS 项目?

无法将 reactjs 和 .net 4.8 后端部署到 iis - dist 文件夹丢失

reactjs 项目使用 iconfont 小图标

在 Visual Studio 2010 上将静态库链接到我的项目