Использование Tau-Prolog с React

Я пытаюсь использовать Tau-Prolog с Node.js и React.

На шаге:

session.consult(program);   

Я получаю это сообщение об ошибке:

TypeError: fs.existsSync is not a function

Вот код для воспроизведения проблемы:

index.js

import React from 'react';
import ReactDOM from 'react-dom';

// These alternatives makes no difference:
var pl = require('tau-prolog');
// var pl = require('./tau-prolog/modules/core.js');
// var pl = require('./tau-prolog.js');

class App extends React.Component {
    componentDidMount() {
        let program = 'fruit(apple). fruit(banana).';
        let session = pl.create();
        // Until here, it's ok. I get Session {rules: {…}, src_predicates: {…},

        // The trouble is at this step:
        session.consult(program);
        ////////
        //////// TypeError: fs.existsSync is not a function
        ////////
    }
    
    render() {
        return <div>Hello world</div>;
    }
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

Спасибо за вашу помощь!

1 ответ

Вам не требуется это на стороне сервера, за исключением случаев, когда вы хотите оценить программу пролога на стороне сервера и запросить результат.

Если вы просто хотите использовать его с реакцией во внешнем интерфейсе, вы можете просто загрузить его, как и любую другую библиотеку внешнего интерфейса, добавив ее в свой html.

      <script type="text/javascript" src="tau-prolog.js"></script>
<script type="text/javascript" src="tau-prolog/core.js"></script>
<script type="text/javascript" src="tau-prolog/lists.js"></script>

а затем либо получить внешний файл .pl, который содержит код Prolog, либо использовать его встроенно, как в примерах или в реакции.

Другие вопросы по тегам