should work.
What does this test flow do...
[{"id":"e1a946e4.37f558","type":"inject","z":"63b08af4.a0bfc4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"title\":\"hello\"}","payloadType":"json","x":210,"y":160,"wires":[["8296bb26.d2e858"]]},{"id":"8296bb26.d2e858","type":"http request","z":"63b08af4.a0bfc4","name":"","method":"POST","ret":"txt","paytoqs":"ignore","url":"http://localhost:1880/test","tls":"","persist":false,"proxy":"","authType":"","x":400,"y":160,"wires":[["a4938060.8293e"]]},{"id":"edd853b3.56c2f","type":"http in","z":"63b08af4.a0bfc4","name":"","url":"/test","method":"post","upload":false,"swaggerDoc":"","x":230,"y":300,"wires":[["4a46b53.7172b4c","8e949317.b184f"]]},{"id":"4a46b53.7172b4c","type":"debug","z":"63b08af4.a0bfc4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":390,"y":380,"wires":[]},{"id":"a4938060.8293e","type":"debug","z":"63b08af4.a0bfc4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":610,"y":160,"wires":[]},{"id":"8759ab5f.c3e2e8","type":"http response","z":"63b08af4.a0bfc4","name":"","statusCode":"","headers":{},"x":630,"y":300,"wires":[]},{"id":"8e949317.b184f","type":"change","z":"63b08af4.a0bfc4","name":"","rules":[{"t":"set","p":"payload.ok","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":300,"wires":[["8759ab5f.c3e2e8"]]}]
edit...
maybe you need to add Content-Type header application/json
in your request?
also are you using bodyParser.json?
app.use(bodyParser.json());