nodejs 字符串拼对象出现[object object] ,如何才能正常解析?

const MAIN_TEMPLATE = `

import Vue from 'vue'

import VueRouter from 'vue-router'

import Home from '../views/Home.vue'

Vue.use(VueRouter)

const routes = [{

path: '/', name: 'Home', component: Home,children:${router}

},]

const router = new VueRouter({

mode: 'history', base: process.env.BASE_URL, routes})

export default router

`

fs.writeFile(path,MAIN_TEMPLATE,err=>{})

上面代码执行后是下面带有 [object object]
nodejs 字符串拼对象出现[object object] ,如何才能正常解析?
children的数据是处理过的!想拼接后写入跟下面截图一样
router 是一个数组对象,
nodejs 字符串拼对象出现[object object] ,如何才能正常解析?

试过JSON.parse,JSON.stringify等 都是不行
请问有什么办法嘛~

回答

字符串拼接符的原理是String的concat的api。

  • 比如

let b = [{name:'b'}]

let a = `name${b}`;

  • node本身不支持es6,经babel会编译为es5代码

var b = [{

name: 'b'

}];

var a = "name".concat(b);

  • 当字符串与数组进行拼接时,会展示为[object object]形式。
  • 所以如果要想不展示为[object object] 应当将数组变量转为字符串

var b = `[{

name: 'b'

}]`;

var a = "name".concat(b);

  • 此时结果为

name[{

name: 'b'

}]

不知这样可不可以:

1.先把router用一个函数包起来

function getChildren () {

return [{

path: '/home/index',

name: 'home'

component: () => import('../view/home/index')

}]

}

2.利用getChildren.toString()拿到函数定义文本

const str = getChildren.toString()

3.最后用正则提取数据和拼接字符串

const reg = /^function [a-zA-Z_$]+ {0,1}\(\) {0,1}{\s+return([^]+)}$/m

str.match(reg)

const router = RegExp.$1

// 接下来拼接router

以上是 nodejs 字符串拼对象出现[object object] ,如何才能正常解析? 的全部内容, 来源链接: utcz.com/a/66491.html

回到顶部