我有一个使用版本号的Node.js Web应用程序(当来自客户端的请求询问版本号时)。现在,当我更改我的版本时,我必须在三个地方更改它:
server.js
const version = 'v1.2.3'
package.json
"version": "1.2.3"
doc.html
<h1>version 1.2.3</h1>
有没有办法在一个地方编辑它并在其他地方使用它?
注意:server.js
和doc.html
的关联方式如下:
// in server.js, using express
app.get('/', function(req, res) {
res.sendFile(__dirname + '/public/doc.html')
})
答案 0 :(得分:2)
您可以执行shell命令npm version
,它将为您提供
{
nameOfYourService: '1.2.3',
npm: '3.10.6',
ares: '1.10.1-DEV'
//etc
}
然后只读取nameOfYourService
的值,并将其作为变量传递给渲染视图(如果是html)或只是在server.js
在这种情况下,package.json
是您保留版本号的唯一地方,应用程序的其余部分只是从那里读取。
答案 1 :(得分:0)
这是一个两步的问题:
1)将参数从package.json
传递到server.js
server.js
:
const version = require('./package.json').version
2)将参数从server.js
传递到doc.html
npm install --save ejs
。doc.html
重命名为views/doc.ejs
。<%= version %>
。server.js
,使其如下所示: server.js
:
const version = require('./package.json').version
//...
app.set('views', './views')
app.set('view engine', 'ejs')
//...
app.get('YOUR URI', function(req, res) {
res.render('doc.ejs', { version: version })
}