我在尝试连接到ElephantSQL时遇到以下错误。我们正在本地连接
未处理的拒绝错误:命名参数“:SID”在给定对象中没有值。 在sql.replace(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/sequelize/lib/sql-string.js:100:13) 在String.replace() 在Object.formatNamedParameters(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/sequelize/lib/sql-string.js:92:14) 在Object.formatNamedParameters(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/sequelize/lib/utils.js:126:20) 在Promise.try(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/sequelize/lib/sequelize.js:491:23) 在tryCatcher(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/bluebird/js/release/util.js:16:23) 在Function.Promise.attempt.Promise.try(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/bluebird/js/release/method.js:39:29) 在Sequelize.query(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/sequelize/lib/sequelize.js:445:23) 在/Users/mitchelsharko/will/cpsc304-project-starter/build/webpack:/server/api/rushee.js:87:16 在Layer.handle [作为handle_request](/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/express/lib/router/layer.js:95:5) 在下一个(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/express/lib/router/route.js:137:13) 在/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/body-parser/lib/read.js:130:5 在invokeCallback(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/raw-body/index.js:224:16) 完成时(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/raw-body/index.js:213:7) 在IncomingMessage.onEnd(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/raw-body/index.js:273:7) 在IncomingMessage.emit(events.js:203:15) 在endReadableNT(_stream_visible.js:1129:12) 在process._tickCallback(internal / process / next_tick.js:63:19)
未处理的拒绝SequelizeConnectionRefusedError:连接ECONNREFUSED 127.0.0.1:5432 在connection.connect.err(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:96:24) 在Connection.connectingErrorHandler(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/pg/lib/client.js:123:14) 在Connection.emit(events.js:198:13) 在套接字。 (/用户/ mitchelsharko /将/cpsc304-project-starter/node_modules/pg/lib/connection.js:71:10) 在Socket.emit(events.js:198:13) 在emitErrorNT上(internal / streams / destroy.js:91:8) 在emitErrorAndCloseNT(internal / streams / destroy.js:59:3) 在process._tickCallback(internal / process / next_tick.js:63:19)
未处理的拒绝SequelizeConnectionRefusedError:连接ECONNREFUSED 127.0.0.1:5432 在connection.connect.err(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:96:24) 在Connection.connectingErrorHandler(/Users/mitchelsharko/will/cpsc304-project-starter/node_modules/pg/lib/client.js:123:14) 在Connection.emit(events.js:198:13) 在套接字。 (/用户/ mitchelsharko /将/cpsc304-project-starter/node_modules/pg/lib/connection.js:71:10) 在Socket.emit(events.js:198:13) 在emitErrorNT上(internal / streams / destroy.js:91:8) 在emitErrorAndCloseNT(internal / streams / destroy.js:59:3) 在process._tickCallback(internal / process / next_tick.js:63:19)
来自以下代码:
router.post('/rushee/add', bodyParser.json(), function (req, res, next) {
const Email = req.body.data.Email
const FirstName = req.body.data.FirstName
const LastName = req.body.data.LastName
const SID = req.body.data.sSID
const GradYear = req.body.data.GradYear
const Nationality = req.body.data.Nationality
const Faculty = req.body.data.Faculty
const PhoneNumber = req.body.data.PhoneNumber
const RusheeIDNumber = req.body.data.RusheeIDNumber
const query1 = 'INSERT INTO Student2 (Email, FirstName, LastName) VALUES (:Email, :FirstName, :LastName) ;'
const query2 = 'INSERT INTO Student3 (SID, FirstName, LastName, GradYear, Nationality, Faculty, PhoneNumber) VALUES (:SID, :FirstName, :LastName, :GradYear, :Nationality, :Faculty, :PhoneNumber) ;'
const query3 = 'INSERT INTO Rushee (R_SID, RusheeIDNumber) VALUES (:SID, :RusheeIDNumber) ;'
connection.query(query1,
{
type: connection.QueryTypes.INSERT,
replacements: {
Email: Email,
FirstName: FirstName,
LastName: LastName
}
})
.then(result => {
// result[1] is the number of rows changed
res.send('/rushee')
})
connection.query(query2,
{
type: connection.QueryTypes.INSERT,
replacements: {
SID: SID,
FirstName: FirstName,
LastName: LastName,
GradYear: GradYear,
Nationality: Nationality,
Faculty: Faculty,
PhoneNumber: PhoneNumber
}
})
.then(result => {
// result[1] is the number of rows changed
res.send('/rushee')
})
connection.query(query3,
{
type: connection.QueryTypes.INSERT,
replacements: {
R_SID: SID,
RusheeIDNumber: RusheeIDNumber
}
})
.then(result => {
// result[1] is the number of rows changed
res.send('/rushee')
})
})
I am not sure what we are missing?
Add.vue page where we want to display it:
<template>
<section class="rushee-view">
<div class="content">
<div class="subsection">
<form style="margin: 15px 15px;">
<div style="margin: 10px 0;">
<span class="user-username">SID: </span>
<input type="text" v-model="sSID"></input>
</div>
<div style="margin: 10px 0;">
<span class="user-username">RusheeIDNumber: </span>
<input type="RusheeIDNumber" v-model="RusheeIDNumber"></input>
</div>
<div style="margin: 10px 0;">
<span class="user-username">Email: </span>
<input type="Email" v-model="Email"></input>
</div>
<div style="margin: 10px 0;">
<span class="user-username">First Name: </span>
<input type="FirstName" v-model="FirstName"></input>
</div>
<div style="margin: 10px 0;">
<span class="user-username">Last Name: </span>
<input type="LastName" v-model="LastName"></input>
</div>
<div style="margin: 10px 0;">
<span class="user-username">Grad Year: </span>
<input type="GradYear" v-model="GradYear"></input>
</div> <div style="margin: 10px 0;">
<span class="user-username">Nationality: </span>
<input type="Nationality" v-model="Nationality"></input>
</div>
<div style="margin: 10px 0;">
<span class="user-username">Faculty: </span>
<input type="Faculty" v-model="Faculty"></input>
</div>
<div style="margin: 10px 0;">
<span class="user-username">PhoneNumber: </span>
<input type="PhoneNumber" v-model="PhoneNumber"></input>
</div>
<button type="button" class="button--grey" @click="submitInsert">Add Rushee</button>
</form>
</div>
</div>
</section>
</template>
<script>
/* eslint-disable indent,no-trailing-spaces */
import axios from '~/plugins/axios'
export default {
data () {
return {
sSID: '',
RusheeIDNumber: '',
Email: '',
FirstName: '',
LastName: '',
GradYear: '',
Nationality: '',
Faculty: '',
PhoneNumber: ''
}
},
methods: {
submitInsert () {
let self = this
axios.post('/api/rushee/add', {
headers:
{
'Content-Type': 'application/json'
},
data:
{
sSID: self.sSID,
RusheeIDNumber: self.RusheeIDNumber,
Email: self.Email,
FirstName: self.FirstName,
LastName: self.LastName,
GradYear: self.GradYear,
Nationality: self.Nationality,
Faculty: self.Faculty,
PhoneNumber: self.PhoneNumber
}})
.then((res) => {
// res.data should contain the url for redirecting... bad practice
self.$nuxt.$router.replace({ path: res.data })
})
.catch((e) => {
console.log(e)
})
}
},
head () {
return {
title: `Add New Rushee`
}
}
}
</script>
<style lang="stylus" scoped>
.rushee-view
padding-top 0
.content
position absolute
width 100%
.subsection
background-color #fff
border-radius 2px
margin 25px 0
transition all .5s cubic-bezier(.55,0,.1,1)
padding 10px 30px 10px 30px
position relative
line-height 20px
.subsection-title
margin 25px 10px
font-size 26px
font-weight 500
.user-username
font-size 24px
font-weight 500
color #707070
.user-password
font-size 24px
font-weight 500
color #707070
a
text-decoration underline
&:hover
color #515ec4
</style>