So, i am trying to connect my Kotlin code and Node.js backend, trying to POST some JSON info, but have [object Object] as a req.body. Why so and how to fix this?
Main.kt:
import com.sun.net.httpserver.Request
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.encodeToString
@Serializable
data class UsrData(val first_name: String, val username: String)
fun main() {
val client = HttpClient.newBuilder().build();
val requestBody = Json.encodeToString(UsrData("Alex", "ztrix"))
println(requestBody.javaClass) // class java.lang.String
val request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:3000/niggawhat"))
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString());
println(response.body()) // Hello, [object Object]
}
index.js
const express = require("express")
const app = express()
const bodyParser = require('body-parser')
app.use(bodyParser.json());
app.post("/niggawhat", function(req, res) {
console.log("Post request arrived with " + req.body)
res.send("Hello, " + req.body)
});
app.listen(3000, function(){
console.log("server is running on port 3000")
})
I tried everything connected with app.use(bodyParser.json())
, val jsonParser = bodyParser.json()
and others. Nothing seems to work.