react-native-community / cli

The React Native Community CLI - command line tools to help you build RN apps
MIT License
2.32k stars 897 forks source link

Invalid character in header content #2449

Open m1duza opened 1 month ago

m1duza commented 1 month ago

Ask your Question

after running nfs run android, the following TypeError error appears: Invalid character in header content ["X-React-Native-Project-Root"] at Server Response.setHeader (node:_http_outgoing:662:3) at status Page Middleware (D:\учеба4\xuysic\node_modules\@react-native-community\cli-server-api\build\statusPageMiddleware .js:19:7) at call (D:\учеба4\xuysic\node_modules\connect\index .js:239:7) at next (D:\study4\xuysic\node_modules\connect\index.js:183:5) at next (D:\study4\xuysic\node_modules\connect\index.js:161:14) at next (D:\study4\xuysic\node_modules\connect\index.js:161:14) at next (D:\study4\xuysic\node_modules\connect\index.js:161:14) at next (D:\study4\xuysic\node_modules\connect\index.js:161:14) at nocache (D:\учеба4\xuysic\node_modules\nocache\index .js:11:5) at call (D:\учеба4\xuysic\node_modules\connect\index .js:239:7) although there is not one mistake here image

szymonrybczak commented 1 month ago

hey @m1duza, could you please try applying this diff to statusPageMiddleware.js file?

diff --git forkSrcPrefix/packages/cli-server-api/src/statusPageMiddleware.ts forkDstPrefix/packages/cli-server-api/src/statusPageMiddleware.ts
index 3e98f2b2b46c6401bb3630c746787aec1b8dac3c..2417950d2bf0b88398d2441c6f8484cacddf8900 100644
--- forkSrcPrefix/packages/cli-server-api/src/statusPageMiddleware.ts
+++ forkDstPrefix/packages/cli-server-api/src/statusPageMiddleware.ts
@@ -5,6 +5,7 @@
  * LICENSE file in the root directory of this source tree.
  */
 import http from 'http';
+import path from 'path';

 /**
  * Status page so that anyone who needs to can verify that the packager is
@@ -14,6 +15,7 @@ export default function statusPageMiddleware(
   _req: http.IncomingMessage,
   res: http.ServerResponse,
 ) {
-  res.setHeader('X-React-Native-Project-Root', process.cwd());
+  const projectRoot = path.normalize(process.cwd());
+  res.setHeader('X-React-Native-Project-Root', projectRoot);
   res.end('packager-status:running');
 }
m1duza commented 1 month ago

szymonrybczak please help me, I don't understand where to insert this diff, and I'm sorry that I didn't notice what you wrote

szymonrybczak commented 1 month ago

@m1duza to check if the diff is working you can achieve it by replacing content of node_modules/@react-native-community/cli-server-api/build/statusPageMiddleware.js file to contain this code:

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = statusPageMiddleware;
function _path() {
  const data = _interopRequireDefault(require("path"));
  _path = function () {
    return data;
  };
  return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/**
 * Status page so that anyone who needs to can verify that the packager is
 * running on 8081 and not another program / service.
 */
function statusPageMiddleware(_req, res) {
  const projectRoot = _path().default.normalize(process.cwd());
  res.setHeader('X-React-Native-Project-Root', projectRoot);
  res.end('packager-status:running');
}

and then you need to start the dev server again with npx react-native start

m1duza commented 1 month ago

image now it gives such an error, I started it through npm start with the changed statusPageMiddleware.js, gave out the same error

phuhoang1202 commented 3 weeks ago

I have the same error as you. Have you fixed it yet?

CaptainBlack21 commented 1 week ago

Has anyone solved the error? I have the same problem.