123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- const { Nuxt, Builder } = require('nuxt')
- const express = require('express')
- const app = express()
- const proxy = require('http-proxy-middleware')
- const cookiejar = require('cookiejar')
- const host = process.env.HOST || '127.0.0.1'
- const port = process.env.PORT || 3000
- process.noDeprecation = true
- app.get('/ssoPrefix/**', (req, res, next) => {
- res.redirect(req.url.replace('/ssoPrefix', ''))
- next()
- })
- app.all('*', (req, res, next) => {
- if (req.url.indexOf('/basic/enterprise/openVendor') > -1) {
- console.log(new Date(), req.url)
- }
- next()
- })
- app.set('port', port)
- let config = require('./nuxt.config.js')
- config.dev = !(process.env.NODE_ENV === 'production')
- const proxyTable = config.proxyTable
- if (proxyTable) {
-
- app.use((req, res, next) => {
- res.header('Access-Control-Allow-Origin', '*')
- res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE')
- res.header('Access-Control-Allow-Headers', 'Content-Type')
- res.header('Access-Control-Allow-Credentials', 'true')
-
-
-
-
- next()
- })
- const defaultOptions = {
- target: config.env.baseUrl,
- changeOrigin: true,
- onProxyRes: (proxyRes) => {
- const setCookieHeaders = proxyRes.headers['set-cookie'] || []
- const modifiedSetCookieHeaders = setCookieHeaders
- .map(str => new cookiejar.Cookie(str))
- .map(cookie => {
- cookie.path = '/'
- return cookie
- })
- .map(cookie => cookie.toString())
- proxyRes.headers['set-cookie'] = modifiedSetCookieHeaders
- }
- }
- if (Array.isArray(proxyTable)) {
- app.use(proxy(proxyTable, defaultOptions))
- } else {
- Object.keys(proxyTable).forEach((context) => {
- var options = proxyTable[context]
- if (typeof options === 'string') {
- options = { target: options }
- }
- app.use(proxy(context, Object.assign(defaultOptions, options)))
- })
- }
-
- config.env.proxyUrl = '/'
- }
- const nuxt = new Nuxt(config)
- app.use(nuxt.render)
- if (config.dev) {
- new Builder(nuxt).build()
- .catch((error) => {
-
- console.error(error)
- process.exit(1)
- })
- }
- app.listen(port, '0.0.0.0')
- console.log(`Nuxt.js SSR Server listening on ${host} : ${port}, at ${new Date().toLocaleString()} \nusing api ${config.env.baseUrl}`)
|