我刚刚为类实现了一个序列化程序,如下所示:
import {File} from './file'
import Serialization from './serializable'
class User implements Serialization<User> {
username: string
deserialize(input) {
this.username = input.username
return this
}
}
省略了一些细节
但是,我想要进行序列化并将此对象转换为Json,我需要实现一个与我在该反序列化器中编写的相反的序列化器
但令人费解的是,当我这样做时:
app.use('/abc', (req, res) => {
getLoggedInUser(sessionToken)
.then(
user => {
const tmp: User = s
res.send(tmp)
}
).catch(
err => {
console.log("err =" + JSON.stringify(err))
}
)
express实际上返回了此User对象的JSON版本。
我对这种行为感到非常惊讶。这是否意味着我不需要序列化器,因为它自动完成了打字稿?或者我错过了什么?
答案 0 :(得分:1)
如果是对象或数组,它会将其字符串化为JSON。来自Express docs:
当参数是数组或对象时,Express会响应 JSON表示:
res.send({ user: 'tobi' }); res.send([1,2,3]);