Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用NUXT'为连接到mssql Server的API提供服务;s集成的Express框架_Sql Server_Api_Express_Nuxt.js - Fatal编程技术网

Sql server 使用NUXT'为连接到mssql Server的API提供服务;s集成的Express框架

Sql server 使用NUXT'为连接到mssql Server的API提供服务;s集成的Express框架,sql-server,api,express,nuxt.js,Sql Server,Api,Express,Nuxt.js,我已经运行了一个基本的NUXT应用程序,在安装过程中,我选择包括集成的Express服务器 我设法将我的SQL server数据库连接到Express(包括Windows身份验证耶!) 不过,我很难让url返回数据。使用postman点击端点返回nuxt内置的404错误页面 如何将NUXT配置为从查询返回数据 numxt.config.js const colors = require('vuetify/es5/util/colors').default module.exports = {

我已经运行了一个基本的NUXT应用程序,在安装过程中,我选择包括集成的Express服务器

我设法将我的SQL server数据库连接到Express(包括Windows身份验证耶!)

不过,我很难让url返回数据。使用postman点击端点返回nuxt内置的404错误页面

如何将NUXT配置为从查询返回数据

numxt.config.js

const colors = require('vuetify/es5/util/colors').default

module.exports = {
  mode: 'universal',
  /*
   ** Headers of the page
   */
  head: {
    titleTemplate: '%s - ' + process.env.npm_package_name,
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content: process.env.npm_package_description || ''
      }
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]
  },
  /*
   ** Customize the progress-bar color
   */
  loading: { color: '#fff' },
  /*
   ** Global CSS
   */
  css: [],
  /*
   ** Plugins to load before mounting the App
   */
  plugins: [],
  /*
   ** Nuxt.js dev-modules
   */
  buildModules: [
    // Doc: https://github.com/nuxt-community/eslint-module
    '@nuxtjs/eslint-module',
    '@nuxtjs/vuetify'
  ],
  /*
   ** Nuxt.js modules
   */
  modules: [
    // Doc: https://axios.nuxtjs.org/usage
    '@nuxtjs/axios'
  ],
  /*
   ** Axios module configuration
   ** See https://axios.nuxtjs.org/options
   */
  axios: {},
  /*
   ** vuetify module configuration
   ** https://github.com/nuxt-community/vuetify-module
   */
  vuetify: {
    customVariables: ['~/assets/variables.scss'],
    theme: {
      dark: true,
      themes: {
        dark: {
          primary: '#007B5F',
          accent: '#007FA3',
          secondary: '#33957F',
          info: colors.teal.lighten1,
          warning: colors.amber.base,
          error: colors.deepOrange.accent4,
          success: colors.green.accent3
        }
      }
    }
  },
  /*
   ** Build configuration
   */
  build: {
    /*
     ** You can extend webpack config here
     */
    extend(config, ctx) {}
  }
}
const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')

const app = express()

// Import and Set Nuxt.js options
const config = require('../nuxt.config.js')
config.dev = process.env.NODE_ENV !== 'production'

// Add api routes
const bridgeRoute = require('./routes/bridgeRoute')

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt(config)

  const { host, port } = nuxt.options.server

  // Build only in dev mode
  if (config.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
  } else {
    await nuxt.ready()
  }

  // Give nuxt middleware to express
  app.use(nuxt.render)

  // Use included routes
  app.use('/api', bridgeRoute)

  // Listen the server
  app.listen(port, host)
  consola.ready({
    message: `Server listening on http://${host}:${port}`,
    badge: true
  })
}
start()

const sql = require('mssql/msnodesqlv8')
const consola = require('consola')
const dbConfig = require('./dbConfig')

// Swap between 'LOCAL', 'TEST' and 'PRODUCTION' environments
const connString = dbConfig.dbConfig.LOCAL.connectionString

const poolPromise = new sql.ConnectionPool(connString)
  .connect()
  .then((pool) => {
    consola.success('Connected to MSSQL')
    return pool
  })
  .catch((err) =>
    consola.error('Database Connection Failed! Bad Config: ', err)
  )

module.exports = {
  sql,
  poolPromise
}
const express = require('express')
const router = express.Router()
const { poolPromise } = require('../db')

router.get('api/bridges', async (req, res) => {
  try {
    const pool = await poolPromise
    const result = await pool.request().query('SELECT TOP 10 FROM [BRIDGE]')

    res.json(result)
  } catch (err) {
    res.status(500)
    res.send(err.message)
  }
})

module.exports = router
这些文件位于根服务器文件夹中

index.js

const colors = require('vuetify/es5/util/colors').default

module.exports = {
  mode: 'universal',
  /*
   ** Headers of the page
   */
  head: {
    titleTemplate: '%s - ' + process.env.npm_package_name,
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content: process.env.npm_package_description || ''
      }
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]
  },
  /*
   ** Customize the progress-bar color
   */
  loading: { color: '#fff' },
  /*
   ** Global CSS
   */
  css: [],
  /*
   ** Plugins to load before mounting the App
   */
  plugins: [],
  /*
   ** Nuxt.js dev-modules
   */
  buildModules: [
    // Doc: https://github.com/nuxt-community/eslint-module
    '@nuxtjs/eslint-module',
    '@nuxtjs/vuetify'
  ],
  /*
   ** Nuxt.js modules
   */
  modules: [
    // Doc: https://axios.nuxtjs.org/usage
    '@nuxtjs/axios'
  ],
  /*
   ** Axios module configuration
   ** See https://axios.nuxtjs.org/options
   */
  axios: {},
  /*
   ** vuetify module configuration
   ** https://github.com/nuxt-community/vuetify-module
   */
  vuetify: {
    customVariables: ['~/assets/variables.scss'],
    theme: {
      dark: true,
      themes: {
        dark: {
          primary: '#007B5F',
          accent: '#007FA3',
          secondary: '#33957F',
          info: colors.teal.lighten1,
          warning: colors.amber.base,
          error: colors.deepOrange.accent4,
          success: colors.green.accent3
        }
      }
    }
  },
  /*
   ** Build configuration
   */
  build: {
    /*
     ** You can extend webpack config here
     */
    extend(config, ctx) {}
  }
}
const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')

const app = express()

// Import and Set Nuxt.js options
const config = require('../nuxt.config.js')
config.dev = process.env.NODE_ENV !== 'production'

// Add api routes
const bridgeRoute = require('./routes/bridgeRoute')

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt(config)

  const { host, port } = nuxt.options.server

  // Build only in dev mode
  if (config.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
  } else {
    await nuxt.ready()
  }

  // Give nuxt middleware to express
  app.use(nuxt.render)

  // Use included routes
  app.use('/api', bridgeRoute)

  // Listen the server
  app.listen(port, host)
  consola.ready({
    message: `Server listening on http://${host}:${port}`,
    badge: true
  })
}
start()

const sql = require('mssql/msnodesqlv8')
const consola = require('consola')
const dbConfig = require('./dbConfig')

// Swap between 'LOCAL', 'TEST' and 'PRODUCTION' environments
const connString = dbConfig.dbConfig.LOCAL.connectionString

const poolPromise = new sql.ConnectionPool(connString)
  .connect()
  .then((pool) => {
    consola.success('Connected to MSSQL')
    return pool
  })
  .catch((err) =>
    consola.error('Database Connection Failed! Bad Config: ', err)
  )

module.exports = {
  sql,
  poolPromise
}
const express = require('express')
const router = express.Router()
const { poolPromise } = require('../db')

router.get('api/bridges', async (req, res) => {
  try {
    const pool = await poolPromise
    const result = await pool.request().query('SELECT TOP 10 FROM [BRIDGE]')

    res.json(result)
  } catch (err) {
    res.status(500)
    res.send(err.message)
  }
})

module.exports = router
db.js

const colors = require('vuetify/es5/util/colors').default

module.exports = {
  mode: 'universal',
  /*
   ** Headers of the page
   */
  head: {
    titleTemplate: '%s - ' + process.env.npm_package_name,
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content: process.env.npm_package_description || ''
      }
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]
  },
  /*
   ** Customize the progress-bar color
   */
  loading: { color: '#fff' },
  /*
   ** Global CSS
   */
  css: [],
  /*
   ** Plugins to load before mounting the App
   */
  plugins: [],
  /*
   ** Nuxt.js dev-modules
   */
  buildModules: [
    // Doc: https://github.com/nuxt-community/eslint-module
    '@nuxtjs/eslint-module',
    '@nuxtjs/vuetify'
  ],
  /*
   ** Nuxt.js modules
   */
  modules: [
    // Doc: https://axios.nuxtjs.org/usage
    '@nuxtjs/axios'
  ],
  /*
   ** Axios module configuration
   ** See https://axios.nuxtjs.org/options
   */
  axios: {},
  /*
   ** vuetify module configuration
   ** https://github.com/nuxt-community/vuetify-module
   */
  vuetify: {
    customVariables: ['~/assets/variables.scss'],
    theme: {
      dark: true,
      themes: {
        dark: {
          primary: '#007B5F',
          accent: '#007FA3',
          secondary: '#33957F',
          info: colors.teal.lighten1,
          warning: colors.amber.base,
          error: colors.deepOrange.accent4,
          success: colors.green.accent3
        }
      }
    }
  },
  /*
   ** Build configuration
   */
  build: {
    /*
     ** You can extend webpack config here
     */
    extend(config, ctx) {}
  }
}
const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')

const app = express()

// Import and Set Nuxt.js options
const config = require('../nuxt.config.js')
config.dev = process.env.NODE_ENV !== 'production'

// Add api routes
const bridgeRoute = require('./routes/bridgeRoute')

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt(config)

  const { host, port } = nuxt.options.server

  // Build only in dev mode
  if (config.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
  } else {
    await nuxt.ready()
  }

  // Give nuxt middleware to express
  app.use(nuxt.render)

  // Use included routes
  app.use('/api', bridgeRoute)

  // Listen the server
  app.listen(port, host)
  consola.ready({
    message: `Server listening on http://${host}:${port}`,
    badge: true
  })
}
start()

const sql = require('mssql/msnodesqlv8')
const consola = require('consola')
const dbConfig = require('./dbConfig')

// Swap between 'LOCAL', 'TEST' and 'PRODUCTION' environments
const connString = dbConfig.dbConfig.LOCAL.connectionString

const poolPromise = new sql.ConnectionPool(connString)
  .connect()
  .then((pool) => {
    consola.success('Connected to MSSQL')
    return pool
  })
  .catch((err) =>
    consola.error('Database Connection Failed! Bad Config: ', err)
  )

module.exports = {
  sql,
  poolPromise
}
const express = require('express')
const router = express.Router()
const { poolPromise } = require('../db')

router.get('api/bridges', async (req, res) => {
  try {
    const pool = await poolPromise
    const result = await pool.request().query('SELECT TOP 10 FROM [BRIDGE]')

    res.json(result)
  } catch (err) {
    res.status(500)
    res.send(err.message)
  }
})

module.exports = router
dbConfig只包含连接到SQL Server的连接字符串

/routes/bridgeRoute.js

const colors = require('vuetify/es5/util/colors').default

module.exports = {
  mode: 'universal',
  /*
   ** Headers of the page
   */
  head: {
    titleTemplate: '%s - ' + process.env.npm_package_name,
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content: process.env.npm_package_description || ''
      }
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]
  },
  /*
   ** Customize the progress-bar color
   */
  loading: { color: '#fff' },
  /*
   ** Global CSS
   */
  css: [],
  /*
   ** Plugins to load before mounting the App
   */
  plugins: [],
  /*
   ** Nuxt.js dev-modules
   */
  buildModules: [
    // Doc: https://github.com/nuxt-community/eslint-module
    '@nuxtjs/eslint-module',
    '@nuxtjs/vuetify'
  ],
  /*
   ** Nuxt.js modules
   */
  modules: [
    // Doc: https://axios.nuxtjs.org/usage
    '@nuxtjs/axios'
  ],
  /*
   ** Axios module configuration
   ** See https://axios.nuxtjs.org/options
   */
  axios: {},
  /*
   ** vuetify module configuration
   ** https://github.com/nuxt-community/vuetify-module
   */
  vuetify: {
    customVariables: ['~/assets/variables.scss'],
    theme: {
      dark: true,
      themes: {
        dark: {
          primary: '#007B5F',
          accent: '#007FA3',
          secondary: '#33957F',
          info: colors.teal.lighten1,
          warning: colors.amber.base,
          error: colors.deepOrange.accent4,
          success: colors.green.accent3
        }
      }
    }
  },
  /*
   ** Build configuration
   */
  build: {
    /*
     ** You can extend webpack config here
     */
    extend(config, ctx) {}
  }
}
const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')

const app = express()

// Import and Set Nuxt.js options
const config = require('../nuxt.config.js')
config.dev = process.env.NODE_ENV !== 'production'

// Add api routes
const bridgeRoute = require('./routes/bridgeRoute')

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt(config)

  const { host, port } = nuxt.options.server

  // Build only in dev mode
  if (config.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
  } else {
    await nuxt.ready()
  }

  // Give nuxt middleware to express
  app.use(nuxt.render)

  // Use included routes
  app.use('/api', bridgeRoute)

  // Listen the server
  app.listen(port, host)
  consola.ready({
    message: `Server listening on http://${host}:${port}`,
    badge: true
  })
}
start()

const sql = require('mssql/msnodesqlv8')
const consola = require('consola')
const dbConfig = require('./dbConfig')

// Swap between 'LOCAL', 'TEST' and 'PRODUCTION' environments
const connString = dbConfig.dbConfig.LOCAL.connectionString

const poolPromise = new sql.ConnectionPool(connString)
  .connect()
  .then((pool) => {
    consola.success('Connected to MSSQL')
    return pool
  })
  .catch((err) =>
    consola.error('Database Connection Failed! Bad Config: ', err)
  )

module.exports = {
  sql,
  poolPromise
}
const express = require('express')
const router = express.Router()
const { poolPromise } = require('../db')

router.get('api/bridges', async (req, res) => {
  try {
    const pool = await poolPromise
    const result = await pool.request().query('SELECT TOP 10 FROM [BRIDGE]')

    res.json(result)
  } catch (err) {
    res.status(500)
    res.send(err.message)
  }
})

module.exports = router