2017-05-02 5 views
1

에있는 모든 파일의 배열을 만들기 내 HTML에 인라인 <script>의 조각입니다가 정의되어 있지 필요 - 디렉토리 여기

<script> 
 
var fs = require('fs'); 
 
var images = fs.readdirSync('/i/cats/'); 
 
</script>

내가 000webhost (무료 버전)에서 내 웹 사이트를 호스트

내 문제는이 발생하는 ReferenceError, require is not defined

, 난을 찾기 위해 노력하고 명확하게하려면 파일이 클라이언트가 아니라 서버에 있습니다. HTML에서

편집 자바 스크립트는 클라이언트 측, 그래서 작동하지 않습니다 필요합니다. 그러므로 PHP를 사용해야합니다. 여기까지가 있습니다.

<?php 
$images = array(); 
if ($handle = opendir('/i/cats')) { 
    while (false !== ($entry = readdir($handle))) { 
     array $images = array_push(array $images, $entry); 
    } 

    closedir($handle); 
} 
?> 

서버 루트에서 디렉토리를 가져 오는 것처럼 보입니다. 이 문제를 어떻게 해결할 수 있습니까?

+2

클라이언트 측 코드이므로 작동하지 않습니다. 이것은 아마도 node.js 호스트에서 HTML에 포함되지 않은 백엔드 스크립트로 작동하지만 프런트 엔드에서는 작동하지 않습니다. – Randy

+0

아, 이거 처음이에요. 감사! 그러나 나는 그것을 고칠 수있는 어떤 방법이라도? – Daniel

+0

코드를 file.js 파일에 작성하고 웹 브라우저 대신 터미널에 "node file.js"와 같은 nodejs와 함께 rund하십시오. https://nodejs.org/en/ –

답변

1

자바 스크립트은 백 엔드와 프런트 엔드를 모두 실행하는 몇 가지 언어 중 하나입니다. 일부 자습서는 백엔드 (node.js)에 대한 코드를 제공하기 때문에 혼란 스러울 수 있습니다.

백엔드를 실행할 수 있지만 대부분의 웹 호스트는 해당 옵션을 제공하지 않습니다. 그들이 할지라도 프론트 엔드 자바 스크립트와 결합하기 전에 차이점을 읽어야 할 것입니다.

현재 수행하려는 작업은 클라이언트 측 (웹 브라우저)에서 서버 측 코드를 실행하는 것입니다.

올바르게 실행하려면 node.js을 PC에 설치하고 노드 (node script.js)와 함께 스크립트를 실행하십시오.

아파치 웹 서버에 파일을 호스팅하는 경우이 수 없습니다. 000webhost은 아파치를 제공합니다. 정말로 이것을 원하면 PHP를 대신 사용하십시오.

+0

이제 PHP를 사용하려고합니다. 새롭기 때문에 약간 어렵습니다. 서버의 루트에서 시작하지 않고 dir을 찾을 수있는 방법을 얻지 마십시오. – Daniel

+0

@ Daniel 제 경험은 PHP가 아니라 JS입니다. 최상의 결과를 얻으려면 새로운 질문을하십시오 (이 질문은 다른 사람들이 더 이상 읽지 않습니다). 어떤 코드로 시도한 것을 보여 주어야합니다. – Randy

관련 문제