such open node lstat force error err clean cache node.js

node.js - open - npm clear cache--force



Error JS del nodo: ENOENT (6)

Para ampliar un poco sobre por qué ocurrió el error: Una barra inclinada al comienzo de una ruta significa "comenzar desde la raíz del sistema de archivos y buscar la ruta determinada". Sin barra inclinada significa "comenzar desde el directorio de trabajo actual y buscar la ruta determinada".

El camino

/tmp/test.jpg

por lo tanto, se traduce en buscar el archivo test.jpg en la carpeta tmp en la raíz del sistema de archivos (por ejemplo, c: / en windows, / on * nix), en lugar de la carpeta webapp . Agregar un punto (.) Al frente de la ruta lo cambia explícitamente para que diga "comience desde el directorio de trabajo actual", pero es básicamente lo mismo que dejar la barra hacia afuera por completo.

./tmp/test.jpg = tmp/test.jpg

Lo sigo junto con: The Node Beginner Book

Después de probar con el código de otra publicación SO:

var Fs = require(''fs''); var dirs = [''tmp'']; var index; var stats; for (index = 0; index < dirs.length; ++index) { try { stats = Fs.lstatSync(dirs[index]); console.log(dirs[index] + ": is a directory? " + stats.isDirectory()); } catch (e) { console.log(dirs[index] + ": " + e); } }

El error persiste:

Error: ENOENT, no existe el archivo o directorio ''tmp''

Los permisos en tmp son 777.

requestHandlers.js

var querystring = require("querystring"), fs = require("fs"); function start(response, postData) { console.log("Request handler ''start'' was called."); var body = ''<html>''+ ''<head>''+ ''<meta http-equiv="Content-Type" ''+ ''content="text/html; charset=UTF-8" />''+ ''<style>input{display: block; margin: 1em 0;}</style>''+ ''</head>''+ ''<body>''+ ''<form action="/upload" method="post">''+ ''<textarea name="text" rows="20" cols="60"></textarea>''+ ''<input type="submit" value="Submit text" />''+ ''</form>''+ ''</body>''+ ''</html>''; response.writeHead(200, {"Content-Type": "text/html"}); response.write(body); response.end(); } function upload(response, postData) { console.log("Request handler ''upload'' was called."); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("You''ve sent the text: "+ querystring.parse(postData).text); response.end(); } function show(response, postData) { console.log("Request handler ''show'' was called."); fs.readFile("/tmp/test.jpg", "binary", function(error, file) { if(error) { response.writeHead(500, {"Content-Type": "text/plain"}); response.write(error + "/n"); response.end(); } else { response.writeHead(200, {"Content-Type": "image/jpg"}); response.write(file, "binary"); response.end(); } }); } exports.start = start; exports.upload = upload; exports.show = show;

Index.js

var server = require("./server"); var router = require("./router"); var requestHandlers = require("./requestHandlers"); var handle = {} handle["/"] = requestHandlers.start; handle["/start"] = requestHandlers.start; handle["/upload"] = requestHandlers.upload; handle["/show"] = requestHandlers.show; server.start(router.route, handle);

Un poco perplejo, cualquier ayuda apreciada.


Puede incluir un archivo de jade diferente en su plantilla, que a partir de un directorio diferente

views/ layout.jade static/ page.jade

Para incluir el archivo de diseño de views dir a static / page.jade

page.jade

extends ../views/layout


cambio

"/tmp/test.jpg".

a

"./tmp/test.jpg"


si su carpeta tmp es relativa al directorio donde se está ejecutando su código, elimine / delante de /tmp .

Entonces solo tienes tmp/test.jpg en tu código. Esto funcionó para mí en una situación similar.


use "temperatura" en lugar de "tmp"

"/temp/test.png"

me funcionó después de darme cuenta de que el tmp es una carpeta temporal que no existía en mi computadora, pero mi temperatura era mi carpeta temporal

///

EDITAR:

También creé una nueva carpeta "tmp" en mi unidad C: y todo funcionó perfectamente. El libro puede haber olvidado mencionar ese pequeño paso

echa un vistazo a http://webchat.freenode.net/?channels=node.js para chatear con algunos de la comunidad node.js


"/tmp/test.jpg" no es la ruta correcta; esta ruta comienza con / que es el directorio raíz.

En Unix, el acceso directo al directorio actual es .

Prueba esto "./tmp/test.jpg"