我在为该列表添加报价时遇到了麻烦,因此用户可以为同一列表发送多个报价。我认为我的sql语句或POST api是错误的,因为当我不断出现内部服务器错误时与邮递员一起运行。任何帮助将不胜感激!
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 );
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 );
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 user_list (userName, email) values ('John','johnnyboi@123.com'); insert into user_list (userName, email) values ('Tom','Tommyboi@123.com'); insert into listing_list (itemName,itemDescription, price) values ( 'Pen', 'A long delicate pen.',' 1.50 '); insert into listing_list (itemName,itemDescription, price) values ( 'Pencil', 'A long delicate pencil.',' 0.50 '); insert into offer_list (offer,fk_listing_id,fk_offeror_id) values ('200','2','3'); insert into offer_list (offer,fk_listing_id,fk_offeror_id) values ('200','1','1'); select * from offer_list; select * from listing_list where fk_poster_id = 2;
insert into offer_list (offer,fk_listing_id,fk_offeror_id) values ('300','2','3');