我有一个节点服务器,为我的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};
}
答案 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();