如何获取正在哪个节点服务器上运行的计算机名称?

时间:2019-05-25 09:14:30

标签: javascript node.js

我有一个节点服务器,为我的React / Redux应用程序提供bundle.js。如何在正在运行的节点服务器中获取计算机名称并将其发送到我的浏览器应用程序?

是否有一些预定义功能可以解决我的用例?

import React from 'react'
import { renderToString } from 'react-dom/server'
import { Provider } from 'react-redux'
import configureStore from './redux/configureStore'
import App from './components/app'

module.exports = function render(initialState) {
  // Model the initial state
  const store = configureStore(initialState)
  let content = renderToString(
    <Provider store={store} >
       <App />
    </Provider>
  );

const preloadedState = store.getState()

const machineName =  ?

return {content, preloadedState, machineName};
}

3 个答案:

答案 0 :(得分:3)

您可以尝试使用Node的os模块,该模块具有hostname()功能:

  

...以字符串[1]

的形式返回操作系统的主机名。

您应该在Node服务器上公开和终结点,以通过HTTP请求(如GET / device_name之类的内容)检索此信息,以便React应用可以使用它。像这样:

const os = require('os')
// ...
router.get('/device_name', (req, res) => {
    res.send({ device_name: os.hostname() });
});
// ...

答案 1 :(得分:0)

您可以使用npm软件包名称computer-name

其用法如下所述

首先使用npm i computer-name

安装它
const computerName = require('computer-name')

 computerName()
 //=> My-MacbookPro

答案 2 :(得分:0)

var os = require("os");
var hostname = os.hostname();