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]
children的数据是处理过的!想拼接后写入跟下面截图一样
router 是一个数组对象,
试过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([^]+)}$/mstr.match(reg)
const router = RegExp.$1
// 接下来拼接router
以上是 nodejs 字符串拼对象出现[object object] ,如何才能正常解析? 的全部内容, 来源链接: utcz.com/a/66491.html