节点js表达宁静的apiPOST

时间:2019-12-25 18:46:19

标签: mysql node.js express

我很难为该列表添加要约,因此用户可以为同一列表发送多个要约。

app.js

var express=require('express');
var app=express();

var bodyParser=require('body-parser');
var urlencodedParser=bodyParser.urlencoded({extended:false});

app.use(bodyParser.json()); //parse appilcation/json data
app.use(urlencodedParser);

const users = require("../model/users.js")
const listings = require("../model/listings.js")
app.post("/listings/:id/offers/",(req,res,next)=>{
  listings.insert(req.body,(error,result)=>{
    if(error){
      console.log(error)
      res.status(500).send('{"Results":Internal Error}')
      return;
    }
    console.log(result)
    res.status(200).send(req.body)
    console.log(req.body)
  })
})
module.exports=app;

listing.js

var db = require('./databaseConfig.js');
db = db.getConnection()
var modules = {
    insertOffers: function(listingid,data,callback){
        const insertOfferQuery = "insert into offer_list (offer,fk_listing_id,fk_offeror_id) values (?, ? , ?) ";
        db.query(insertOfferQuery,[data.offer,data.listingid,data.fk_offeror_id],(error,result)=>{
            if(error){
                callback(error,null);
                return;
            }
            callback(null,result);
        })
    }
}

MySQL表架构和示例数据:

CREATE DATABASE IF NOT EXISTS assignment_db; 
USE assignment_db;

CREATE TABLE user_list ( 
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
userName VARCHAR(50) NOT NULL, 
email VARCHAR(100) NOT NULL, 
registeredDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );

INSERT INTO user_list (userName, email) VALUES 
('John','johnnyboi@123.com'),
('Tom','Tommyboi@123.com'); 

CREATE TABLE listing_list( 
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
itemName VARCHAR(50) NOT NULL, 
itemDescription VARCHAR(254) NOT NULL, 
price DECIMAL(4,2) NOT NULL, 
fk_poster_id INT REFERENCES USER_LIST(id), 
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );

INSERT INTO listing_list (itemName,itemDescription, price) VALUES 
( 'Pen', 'A long delicate pen.',' 1.50 '), 
( 'Pencil', 'A long delicate pencil.',' 0.50 '); 

CREATE TABLE offer_list( 
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
offer INT, 
fk_listing_id INT REFERENCES listing_list(id), 
fk_offeror_id INT REFERENCES user_list(id), 
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );

INSERT INTO offer_list (offer,fk_listing_id,fk_offeror_id) VALUES 
('200','2','3'),
('200','1','1'),
('300','2','3'); 

MySQL查询:

SELECT * FROM offer_list; 

SELECT * FROM listing_list 
WHERE fk_poster_id = 2;

0 个答案:

没有答案