Почему мое приложение nodejs в IIS выходит из строя из-за os.userInfo()?

#javascript #node.js #environment-variables #iisnode

Вопрос:

В настоящее время я развертываю приложение, созданное мной на нашем внутреннем IIS-сервере.

У меня есть интерфейс, встроенный в ReactJS, и серверная часть обрабатывается приложением Nodejs. Все работает нормально, пока я не использую os.userInfo(). Например, для запроса:

 app.get("/api/getcurrentuser", async function (req, res) {
  await pool1Connect;
  try {
    let user = await pool1
      .request()
      .query(
        `SELECT * FROM dbo.Einkauf_Web_Benutzer_DEV WHERE AUTH_User = '${
          process.env.USERDOMAIN   "\"   os.userInfo().username
        }'`
      );
    res.send(user.recordsets);
  } catch (error) {
    console.log(error);
  }
});
 

В моей локальной среде разработки он работал просто отлично, но когда я развернул его на сервере IIS, он начал сбоить из-за нехватки памяти. Даже несмотря на то, что когда я выполняю API через node.exe он показывает мне имя пользователя, которое я получаю от os.userInfo().имя пользователя:

Вход в консоль os.userInfo().имя пользователя

Но когда я назначаю переменную с os.userInfo().имя пользователя, все мое приложение выходит из строя и отображает эту ошибку:

     SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_get_passwd returned ENOMEM (not enough memory)
    at Object.userInfo (os.js:270:11)
    at C:inetpubwwwrootektoolv2apiapi.js:53:46
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: -4057,
    code: 'ENOMEM',
    message: 'not enough memory',
    syscall: 'uv_os_get_passwd'
  },
  errno: [Getter/Setter: -4057],
  syscall: [Getter/Setter: 'uv_os_get_passwd']
}
 

Я уверен, что это проблема с памятью, но почему я могу консольно регистрировать ее, если на меня не падает приложение?