未处理的拒绝SequelizeConnectionRefusedError:连接

时间:2019-06-19 22:43:05

标签: javascript

我在尝试连接到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>

0 个答案:

没有答案