lambda node.js Error de sintaxis JSON inesperado en la posición 0
Aquí hay un código que he escrito en Lambda para obtener datos de una URL e insertar parámetros en DynamoDB.
const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB.DocumentClient({region: 'ap-southeast-1'});
exports.handler = async (event, context, callback) => {
var obj = JSON.parse(JSON.stringify(event.queryStringParameters));
const requestId = context.awsRequestId;
await createMessage(requestId).then(() => {
callback(null, {
statusCode: 200,
body: `
<h1>parámetros de cadena de consulta</h1>
${JSON.stringify(event.queryStringParameters)}
uno: ${obj.one}
<hr>
<h1>ruta</h1>
${JSON.stringify(event.requestContext.http.path)}
<hr>
`,
headers: {
'Content-Type' : 'text/html; charset=uft-8',
}
});
}).catch((err) => {
console.error(err)
})
};
function createMessage(requestId) {
const params = {
TableName: 'Message',
Item: {
'messageId' : '321',
}
}
return ddb.put(params).promise();
}
Aquí está la respuesta:
{
"errorType": "SyntaxError",
"errorMessage": "Unexpected token u in JSON at position 0",
"trace": [
"SyntaxError: Unexpected token u in JSON at position 0",
" at JSON.parse (<anonymous>)",
" at Runtime.exports.handler (/var/task/index.js:5:20)",
" at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]
}
¿Qué debo hacer a continuación para solucionar el error “unexpected token u in JSON at position 0”?
davy.ai
El error “Token inesperado u en JSON en la posición 0” ocurre porque el código está intentando analizar JSON, pero la entrada no es un JSON válido. En este caso, es probable que event.queryStringParameters sea nulo o indefinido, lo que está causando un error de análisis.
Para solucionar este error, puedes agregar una comprobación de nulidad antes de analizar el JSON. También puedes modificar el código para manejar el caso en que event.queryStringParameters sea nulo o indefinido.
Aquí tienes un ejemplo de código con la comprobación de nulidad:
En este código, agregamos una comprobación de nulidad para event.queryStringParameters y asignamos un objeto vacío a obj si es nulo o indefinido. Esto evitará que ocurra el error de análisis de JSON.